【问题标题】:Calling a VB.NET web service with Java使用 Java 调用 VB.NET Web 服务
【发布时间】:2010-08-26 04:29:02
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java vb.net web-services jsp


    【解决方案1】:

    要让 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服务。

    【讨论】:

      【解决方案2】:

      这完全取决于您所谈论的 Web 服务类型(RESTful 与 SOAP 等)。从理论上讲,拥有 Web 服务的全部意义在于提供这种互操作性,所以这绝对是可能的。但是,如果没有更多细节,很难为您指明正确的方向。

      真的,这个问题与 VB.net 无关,因为客户端不需要接触任何服务实现细节。

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

      你应该看看的Java框架:

      【讨论】:

      • 您将需要使用 WSDL 文件来生成客户端。查看更新的答案。
      【解决方案3】:

      如果“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 服务合同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多