如何从java调用c#webservice

时间:2010-08-30 13:55:19

标签: c# java web-services

有没有办法从java调用c#webservice?我有一个用c#语言编写的web服务,我确实想在java中使用这个webservice。如果有办法,请告诉我。

此致 Altaico

4 个答案:

答案 0 :(得分:4)

webservice只是一个生成一些文本的小程序,然后由HTTP发送。 文本可以通过Html或Xml(或纯文本)。编写小程序的语言是完全不相关的,因为所有Java客户端都将在Http提供的文本中看到。

完全像调用用Java或任何其他语言编写的Web服务一样调用它。

答案 1 :(得分:2)

Web服务是一种标准协议。您可以像调用Java Web服务一样调用C#Web服务。您可以从服务提供的WSDL定义文件生成客户端。

从C#(.NET)Web服务,您可以在以下URL中获取WSDL定义文件:

http://[web_service_virtual_path].asmx?WSDL

答案 2 :(得分:2)

我做了很多次。 Web服务支持作为标准包含在java 1.6中,因此不需要额外的jar文件。

起点是 WSDL网址。这看起来像标准HTTP URL,最后带有?wsdl。正如@Germán在他的回答中所指出的那样,它看起来像这样:

http://[web_service_virtual_path].asmx?WSDL

下一步是运行 wsimport 。 wsimport是Java 1.6发行版的一部分,因此不需要额外的下载。

我在命令行中使用了以下命令来生成基于wsdl的Java客户端代码:

wsimport -s src -keep -Xnocompile http://[web_service_virtual_path].asmx?WSDL

这将在src文件夹中创建一个java包树,并将.java文件保留在那里。

(可能还需要设置其他标志,具体取决于实际Web服务的创建方式,例如您隐藏在代理服务器后面。运行wsimport,不带参数以获取这些标志或选项的列表)< / p>

Web服务文档(即使它是C#格式)通常足以让您继续从这一点开始编写。您应该从您尝试连接的实际Web服务的编写者处获得此文档。

答案 3 :(得分:1)

Web服务编写的语言应该是无关紧要的 - 这是使用Web服务的一部分。通常,是的,您可以从Java调用webservices。一个可以帮助您解决此问题的库是Apache Axis