如何通过javax.xml.ws.Service进行调用

在Eclipse中创建了一个新的标准java 7项目,并成功设法获取javax.xml.ws.Service的实例,如下所示:

  String wsdlURL = "http://example.com:3000/v1_0/foo/bar/SomeService?wsdl"; String namespace = "http://foo.bar.com/webservice"; String serviceName = "SomeService"; QName serviceQN = new QName(namespace, serviceName); Service service = Service.create(new URL(wsdlURL), serviceQN); 

这在主方法中运行良好,所以据我所知,该部分有效。 但我无法弄清楚如何实际使用它。 在SoapUI中,我使用如下所示的请求调用此相同的服务:

      012345678901234 Fix     

如何在Java中执行相同的请求? 我的目标是我有一个很长的这些id列表,我需要为每个id运行这样的请求。 在SoapUI中手动执行它有点烦人,因此我想使用简单的Java控制台应用程序自动执行它。

下一步是从您的服务获取Port

 Service service = Service.create(new URL(wsdlURL), serviceQN); // this is where you are. QName portQName = new QName(portNamespace, portName); YourPortInterface port = service.getPort(portQName, YourPortInterface.class); 

wsimport期间会生成YourPortInteface ,或者如果您有足够的“阅读”wsdl经验,您可以自己创建和注释它。

您可以将JAX-WS用作客户端。

基本上,您使用wsimport创建包装Web服务的存根java类,然后在Java代码中使用这些存根。 存根处理所有XML转换,包括您的请求和响应。

教程在这里: http : //docs.oracle.com/javaee/5/tutorial/doc/bnayn.html
寻找名为“简单的JAX-WS客户端”的部分