Java中的SOAP Webservice Client

时间:2013-10-26 10:11:13

标签: java web-services soap webservice-client

我是SOAP webservice客户端的新手,在创建客户端时遇到错误。

请帮我解决这个问题

//This is request that has to be send using SOAP Envelope

POST /DISWebService/DISWebService.asmx HTTP/1.1
Host: 192.168.2.119
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <LoginSystem xmlns="http://tempuri.org/">
      <username>string</username>
      <password>string</password>
    </LoginSystem>
  </soap12:Body>
</soap12:Envelope>

Java代码

public static void main(String args[]) {
    try {
        // Create SOAP Connection
    SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory      .newInstance();
    SOAPConnection soapConnection = soapConnectionFactory
                    .createConnection();

            String url = "http://192.168.2.119/VISWebService/VISWebService.asmx";
            // String url =
            // "http://192.168.2.119/DISWebService/DISWebService.asmx?op=LoginSystem";

            SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(),url);

            // Process the SOAP Response
            printSOAPResponse(soapResponse);

            soapConnection.close();
        } catch (Exception e) {
            System.err
                    .println("Error occurred while sending SOAP Request to Server");
            e.printStackTrace();
        }
}

private static SOAPMessage createSOAPRequest() throws Exception {
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage = messageFactory.createMessage();
        SOAPPart soapPart = soapMessage.getSOAPPart();


        String serverURI = "http://192.168.2.119/DISWebService/DISWebService.asmx";

        // SOAP Envelope
        SOAPEnvelope envelope = soapPart.getEnvelope();

        // SOAP Body
        SOAPBody soapBody = envelope.getBody();

        SOAPElement soapBodyElem = soapBody.addChildElement("LoginSystem");

        SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("username");
        soapBodyElem1.addTextNode("Chirendu");

        SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("password");
        soapBodyElem2.addTextNode("verve12*");

        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", serverURI );

        soapMessage.saveChanges();

        /* Print the request message */
        System.out.print("Request SOAP Message = ");
        soapMessage.writeTo(System.out);
        System.out.println();

        return soapMessage;
    }

请帮我创建客户。

1 个答案:

答案 0 :(得分:3)

我建议分两步进行调试

1)使用soapUI并检查您的回复是否来了

2)使用我在mykong

中使用的工作示例