使用JAX WS连接到SOAP

Har*_*Joy 1 java soap jax-ws

我想使用JAXWS在java中构建一个soap客户端.我在谷歌搜索但没有找到任何相关信息.这是我尝试过的:

     QName serviceName = new QName("urn:Site", "Site");
     QName portName = new QName("urn:Site", "Server_HandlerPort");
     String  endpointAddress = "http://myhost/url/soap";
     Service service = Service.create(serviceName);
     service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
     Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);
     BindingProvider bp = (BindingProvider) dispatch;
     MessageFactory factory = ((SOAPBinding) bp.getBinding()).getMessageFactory();
     SOAPMessage request = factory.createMessage();
     SOAPHeader header = request.getSOAPHeader();
     SOAPBody body = request.getSOAPBody();
     QName payloadName = new QName("session");
     SOAPBodyElement payload = body.addBodyElement(payloadName); 
     SOAPMessage reply = null;
     try {
        reply = dispatch.invoke(request);
    } catch (WebServiceException wse){
        wse.printStackTrace();
    }

    body = reply.getSOAPBody();
    QName responseName = new QName("urn:site","sessionResponse");
    SOAPBodyElement bodyElement = (SOAPBodyElement) body.getChildElements(responseName).next();
    System.out.println(bodyElement.getValue());
Run Code Online (Sandbox Code Playgroud)

这不起作用.这总是回来null我不知道为什么?谁可以帮我这个事?任何例子?做这样的事情?

小智 5

JAX-WS允许您使用wsimport从Web服务的WSDL生成客户端.这将使客户端代码更加简单.这是一个示例教程