如何使用Java客户端导入WCF Web服务

JRP*_*JRP 1 c# wcf java-client

我有一个使用wsHttpBinding的WCF Web服务,我从Java客户端使用它.我使用wsimport从WSDL生成代码.java客户端似乎正在创建服务,但是当我在服务上调用方法时,客户端只是旋转.

MyService s = new MyService();
IMyService i = s.getWSHttpBindingIMyService();
returnedValue = i.getSomething(2); // method call
Run Code Online (Sandbox Code Playgroud)

Java客户端可以与使用wsHttpBinding的WCF Web服务进行通信吗?这样做的最佳方法是什么?
任何帮助将不胜感激.

eld*_*uff 5

您肯定希望使用WSIT来帮助编写客户端,并且最简单的方法是使用整个Metro堆栈.Metro在其罐子中包含jaxws-ri,WSIT和JAB(webservices-rt.jar和webservices-api.jar).

让您入门的几个步骤:

  1. WCF服务的已发布WSDL是否包含WS-Policy部分?如果没有,请获取该信息并将其放入服务WSDL文件的本地本地副本中.在包含WS-Policy部分的WSDL上重新运行wsimport.

  2. 在客户端的类路径中包含metro jar.

  3. 编写一个名为wsit-client.xml文件的文件,并将其放入WEB-INF/classes(或类路径)中.这是一个样本.现在,当您使用客户端时,您应该在控制台中看到一条INFO消息:WSP5018:从文件加载WSIT配置:

  4. 如果您遇到WS-Policy或wsit-client.xml,请使用Netbeans.我使用Eclipse进行开发,虽然我不喜欢Netbeans,但我多次使用它作为参考,因为它在IDE中具有配置设置,可以保护Web服务和编写Web服务需要安全性的客户端,它将为您生成带有WS-Policy信息的wsit-client.xml和WSDL.尝试在Netbeans中编写Web应用程序并指向服务的WSDL以在那里生成Web服务客户端并查看生成的文件的外观.

  5. 你可以在这里得到一些问题,但是java.net Metro 论坛也很活跃,你也可以得到很好的支持.只要准备好像"在Netbeans/Glassfish中做XYZ"这样的答案.