通过.net web服务调用java web服务

时间:2009-05-14 00:02:30

标签: .net web-services

HI

请问您如何编写.net Web服务来通过SOAP调用java Web服务(由不同的人编写)。

谢谢 问候 阿帕娜

4 个答案:

答案 0 :(得分:1)

对于标准的SOAP Web服务调用,底层实现对于使用应用程序应该不重要。下拉WSDL并希望这些调用记录得足够好,以便您可以执行所需操作。请注意来自其他编程语言的类型转换,它们可能不会像您在使用该服务所使用的语言中所期望的那样通过Web服务调用。

答案 1 :(得分:1)

与上述答案一样, 应该是直截了当的。

您需要注意的一件事是,您公开的Java Web服务符合WS-I Basic Profile标准 - 换句话说,它需要使用rpc / literal或document / literal WSDL SOAP绑定。

如果您正在公开rpc /编码的Web服务(如果您使用Apache Axis作为Web服务堆栈通常就是这种情况),那么可能会遇到问题从.NET客户端使用它。

这里有一篇关于WSDL绑定样式的好文章: http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/

答案 2 :(得分:0)

您只需将.NET服务作为Java服务的客户端:

  1. 右键单击您的Web服务项目并使用“添加服务引用”
  2. 在“地址”框中指定Java Web服务的WSDL的URL,然后单击“开始”
  3. 指定将通过其访问Java服务的“Namaespace”,例如“JavaService”。点击“确定”。
  4. 如果一切顺利,您现在应该在“ YourProjectNamespace .JavaService”命名空间下为您创建了许多类。
  5. 特别是,你应该有一个代表服务本身。现在,给定的服务可以实现多个服务契约(在WSDL术语中称为“端口类型”)。如果服务实现 JavaServiceContract 端口类型,那么您应该找到名为 YourProjectNamespace .JavaService。 JavaServiceContract Client的类。假设此合约包含名为“JavaOperation”的操作,您应该这样调用它:

    int returnValue = 0;
    YourProjectNamespace.JavaService.JavaServiceContractClientjavaService = null;
    try {
            javaService = 
                new YourProjectNamespace.JavaService.JavaServiceContractClient();
            returnValue = javaService.JavaOperation();
    }
    finally {
        if (javaService != null) {
            ((IDisposable)javaService.)Dispose();
        }
    }
    

答案 3 :(得分:0)

基本上在.net web服务,.net web app或.net windows应用程序中调用java Web服务没有任何差别。 看看这篇文章。希望它能清除你所有的疑虑 http://blogs.msdn.com/bursteg/archive/2008/07/19/how-to-call-a-java-ee-web-service-from-a-net-client.aspx