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/