【发布时间】:2010-08-26 04:29:02
【问题描述】:
使用 Java / JSP 调用 vb.net Web 服务的最佳解决方案(如果有)是什么?如果有人能指出任何示例/参考资料,我将不胜感激。
谢谢!
【问题讨论】:
标签: java vb.net web-services jsp
使用 Java / JSP 调用 vb.net Web 服务的最佳解决方案(如果有)是什么?如果有人能指出任何示例/参考资料,我将不胜感激。
谢谢!
【问题讨论】:
标签: java vb.net web-services jsp
要让 Java 连接到 .NET Web 服务,您首先需要生成一个 WSDL。这可以通过在 .asmx Web 服务 (.NET) 前添加 ?WSDL 来完成,例如http://localhost:8080/myApp/myService.asmx?WSDL
要让 Java 理解这一点,您需要一个 Web 服务客户端:在 Java 6 中,JAX-WS 是最新规范。
以下符合 JAX-WS 的客户端是:
这些工具允许您从 WSDL 定义创建 java 代理。在 java 6 中(在 JDK_HOME/bin 文件夹中),有一些工具(现在是标准的)可以将 WSDL 定义转换为 java 代理。 wsimport (windows) 允许这样的操作。
一旦你有了一个java代理,你基本上可以调用所有被创建的暴露的web服务方法来调用你的web服务。
【讨论】:
这完全取决于您所谈论的 Web 服务类型(RESTful 与 SOAP 等)。从理论上讲,拥有 Web 服务的全部意义在于提供这种互操作性,所以这绝对是可能的。但是,如果没有更多细节,很难为您指明正确的方向。
真的,这个问题与 VB.net 无关,因为客户端不需要接触任何服务实现细节。
编辑:由于它是 SOAP 服务,因此您应该能够根据服务的 WSDL 创建客户端。有多种工具可以帮助解决此问题。这是使用 WSDL2Java 实用程序的 generating Java code from a WSDL 教程。
你应该看看的Java框架:
【讨论】:
如果“VB.NET Web 服务”是指 ASP.NET Web 服务(.asmx 文件扩展名),您应该能够通过 Java 和 Soap 客户端使用它。
每个 ASP.NET Web 服务都将通过 WSDL(Web 服务定义语言)文件公开其针对该服务的公共合同,您只需在 Web 服务地址的 .asmx 之后添加 ?WSDL 即可访问该文件。基于通用协议(如 SOAP)的 Web 服务的主要优势在于它们允许软件跨机器和平台边界进行通信。 WSDL 文件是软件应用程序之间存在的合同,以确保它们以相同的语言进行通信。
一个好的客户端库将读取该 WSDL 文件,并将处理通过基于 SOAP 的 XML 消息与 Web 服务进行通信的管道。如果您真的愿意,您甚至可以手工制作 SOAP XML 消息并通过简单的 HTTP 客户端进行通信。但是,最好使用已经存在的库来处理您的 SOAP 管道。这让您的应用程序可以使用 Web 服务的功能,同时确保您遵守 Web 服务合同。
【讨论】: