有没有办法从java调用c#webservice?我有一个用c#语言编写的web服务,我确实想在java中使用这个webservice。如果有办法,请告诉我。
此致 Altaico
答案 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。