直接构建SOAP包调用WEB SERVICE的方法

WEB SERVICE 和普通的java servlet 有什么不同,在我看来WEB SERVICE 只不过是使用soap包构建请求,再进行解包调用而已,

而WSDL只不过是,教你如何构建SOAP包。下面的代码演示了如何构建SOAP包,直接调用WEB SERVICE.

String data ="<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ifac='http://iface.motor.com/'>" +
"<soapenv:Header/>" +
"<soapenv:Body>" +
      "<ifac:GetStateInfo>" +
         
         "<carNo>aa</carNo>" +
         
         "<color>ad</color>" +
         
         "<carframe>dd</carframe>" +
         "</ifac:GetStateInfo>" +
         "</soapenv:Body>" +
         "</soapenv:Envelope>";
    
        // Send data
        URL url = new URL(http://localhost/svc/motorService);
        URLConnection        conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            System.out.println(line);
        }
        wr.close();
        rd.close();

 

 

上面的代码,我们可以看到,我们直接构建了一个SOAP包,并将这个包发送WEB SERVICE地址。

可以观察返回,我们可以看到,返回的也是一个SOAP包。

 

至如如何方便的获取这个SOAP请求包,我们可以使用SOAPUI这个工具。地址:http://www.soapui.org/