我有一个使用 wsHttpBinding 的 WCF Web 服务,我从 Java 客户端使用它。我使用 wsimport 从 WSDL 生成代码。 Java 客户端似乎可以很好地创建服务,但是当我在服务上调用方法时,客户端只会旋转。
MyService s = new MyService();
IMyService i = s.getWSHttpBindingIMyService();
returnedValue = i.getSomething(2); // method call
Java 客户端能否与使用 wsHttpBinding 的 WCF 网络服务通信?这样做的最佳方式是什么?
任何帮助将不胜感激。
最佳答案
您肯定希望使用 WSIT 来帮助编写您的客户端,使用整个 Metro 可能是最简单的方法堆。 Metro 在其 jars(webservices-rt.jar 和 webservices-api.jar)中包含 jaxws-ri、WSIT 和 JAB。
开始的几个步骤:
WCF 服务的已发布 WSDL 是否包含 WS-Policy 部分?如果没有,请获取该信息并将其放入服务 WSDL 文件的本地本地副本中。在包含 WS-Policy 部分的 WSDL 上重新运行 wsimport。
将 Metro jar 包含在您客户的类路径中。
编写一个名为 wsit-client.xml 的文件并将其放入 WEB-INF/classes(或您的类路径)。这是一个 sample .现在,当您使用客户端时,您应该会在控制台中看到一条信息消息:WSP5018:从文件加载 WSIT 配置:
如果您在 WS-Policy 或 wsit-client.xml 上遇到困难,请使用 Netbeans。我使用 Eclipse 进行开发,虽然我不太喜欢 Netbeans,但我已经多次将其用作引用,因为它在 IDE 中具有配置设置,使您能够保护 Web 服务并编写 Web 服务需要安全性的客户端,它会为您生成带有 WS-Policy 信息的 wsit-client.xml 和 WSDL。尝试在 Netbeans 中编写 Web 应用程序并指向服务的 WSDL 以在那里生成 Web 服务客户端并查看生成的文件是什么样子。
您可以在 SO 上找到一些问题的答案,但是 java.net Metro forum也很活跃,你也可以在那里得到很好的支持。准备好回答“在 Netbeans/Glassfish 中执行 XYZ”之类的回答。
关于c# - 如何使用 Java 客户端导入 WCF Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2767984/