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();
"<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/