c#,Java Web服务集成

本文关键字:服务 集成 Web Java | 更新日期: 2023-09-27 17:51:14

我有一个c#应用程序,应该与Java应用程序集成,客户端建议使用web服务。因此,我的c# Web服务将从Java应用程序调用。在我的c# web服务和客户端的Java应用程序之间保持良好的数据转换的最佳选择是什么,以及哪一个将允许我发送和接收复杂的数据类型:

  1. 使用ASP Web Services
  2. 使用WCF (BasicHttp Binding)
  3. 使用WCF (WebHttp绑定)

c#,Java Web服务集成

WebHttpBinding(见这里):

定义一个绑定元素,用于配置响应HTTP请求而不是SOAP消息的Windows Communication Foundation (WCF) Web服务的端点。

这是更多REST风格的http请求

BasicHttpBinding(见这里):

表示一个绑定,Windows通信基础(WCF)服务可以使用它来配置和公开端点,这些端点能够与基于asmx的Web服务和客户端以及符合WS-I基本概要1.1的其他服务进行通信。

所以这取决于你的c#服务所暴露的服务端点类型。如果要公开REST样式的端点,请使用WebHttpBinding。否则,如果您使用asmx端点公开基于SOAP协议的web服务,则使用选项#1或选项#2

如果您正在公开一个.asmx端点,那么wsdl应该通过像 http://yourdomaine.com/serviceuri.asmx?wsdl 这样的请求正常可用(示例:这里)。您可以将该wsdl提供给Apache CXF wsdl提供给java(请参阅此处)。描述说:

wsdl2java接受WSDL文档并生成完全带注释的Java代码,从中实现服务。WSDL文档必须有一个有效的portType元素,但它不需要包含绑定元素或服务元素。使用可选参数,您可以自定义生成的代码。此外,wsdl2java可以生成一个基于Ant的makefile来构建您的应用程序。

请参阅链接以获取要使用的选项的完整列表。

因此,使用适当的选项,它将生成用于数据交换(复杂类型)的必要java类以及将被包装到业务服务中的服务调用类。

希望能有所帮助

下面是一个很好的例子:

它使用BasicHttpBinding