2010-08-25 270 views
3

使用Java/JSP调用vb.net Web服务的最佳解决方案(如果有)是什么?如果有人能指出我的任何例子/参考资料,我将非常感激。使用Java调用VB.NET Web服务

谢谢!

+1

第一步:获取WSDL。 – 2010-08-25 19:51:33

回答

2

对于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(窗口)允许这样的操作。

一旦你有一个java代理,你基本上可以调用所有创建的Web服务方法来调用你的web服务。

1

这完全取决于你在谈论什么样的Web服务(RESTful vs. SOAP等)。从理论上讲,拥有Web服务的重点就是提供这种互操作性,所以它绝对有可能。然而,没有更多的细节很难指出你在正确的方向。

真的,这个问题与VB.net无关,因为客户端不应该暴露于任何服务实现细节。

编辑:由于它是一个SOAP服务,您应该能够基于服务的WSDL创建一个客户端。有很多工具可以帮助解决这个问题。以下是使用WSDL2Java实用程序的generating Java code from a WSDL教程。

Java框架你应该看一看:

+0

对不起,没有指定,我正在谈论SOAP ... – littleK 2010-08-25 19:45:45

+0

您将要使用WSDL文件来生成客户端。查看更新的答案。 – dbyrne 2010-08-25 19:52:10

0

如果 “VB.NET网络服务”,你的意思是ASP.NET Web服务(。 asmx文件扩展名),您应该能够通过使用Soap客户端的Java来使用它。

每个ASP.NET Web服务都将通过WSDL(Web服务定义语言)文件公开它的公共约定,您只需在Web服务地址的.asmx之后添加?WSDL即可访问该文件。基于SOAP等通用协议的Web服务背后的关键优势在于,它们允许软件跨越机器和平台边界进行通信。 WSDL文件是软件应用程序之间存在的合同,以确保它们使用相同的语言进行通信。

一个好的客户端库将读取该WSDL文件,并将处理通过基于SOAP的XML消息与Web服务进行通信的管道。如果你真的想,你甚至可以手工制作你的SOAP XML消息,并通过一个简单的HTTP客户端进行通信。但是,最好使用已存在的库来处理您的SOAP管道。这可以让您的应用程序使用Web服务的功能,同时确保您遵守Web服务合同。