1、什么是 wsdl?
用一种和具体语言无关的抽象方式定义了给定 WEB 服务收发的有关消息和服务。
webservice wsdl 各元素详解参考:https://blog.youkuaiyun.com/wenzhi20102321/article/details/68486526
2、webservice 四种发布方式
CXF
Xfire
AXIS2
AXIS1
详细可参考:http://blog.youkuaiyun.com/zl834205311/article/details/51612207
3、webservice 客户端调用方式
方式一:
import org.codehaus.xfire.client.Client;
public class YbQuartSend {
public void work(){
}
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb
.append("<?xml version=\'1.0\' encoding=\'GBK\' standalone=\'yes\'?>")
// .append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
.append("<LabresultDownsyndromeXml>")
.append("<labresultDownsyndromeData>")
.append("<batchDepaId>455767793</batchDepaId>")
.append("<accessToken>9b5725294a871b9322dd8c406fbe6bb8</accessToken>")
.append("<incaSerumType>1</incaSerumType>")
.append("<incaAfp>1</incaAfp>")
.append("<incaAge>28</incaAge>")
.append("<incaDate>946656060000</incaDate>")
.append("<incaGestationalWeeks>14</incaGestationalWeeks>")
.append("<incaHcg>1</incaHcg>")
.append("<incaNt>1</incaNt>")
.append("<incaNumFetus>3485</incaNumFetus>")
.append("<incaPappa>1</incaPappa>")
.append("<incaT21End>1</incaT21End>")
.append("<incaT18End>1</incaT18End>")
.append("<incaType>1</incaType>")
.append("<incaUe3>1</incaUe3>")
.append("<incaDpDepa>77438B840EF4483B8223C5B0562E6D20</incaDpDepa>")
.append("<womaHealthno>0001010080000292222</womaHealthno>")
.append("</labresultDownsyndromeData>")
.append("</LabresultDownsyndromeXml>");
System.out.println(sb.toString());
// String result=doWebservice("disposeLabresultHighThroughputSequenceByXml",sb.toString());
String result=doWebservice("disposeLabresultDownsyndromeByXml",sb.toString());
}
protected static String doWebservice(String methodname, String reqParam) {
String result = "";
String url="http://127.0.0.1:9529/mchs_service/services/labresultWebService?wsdl";
try {
Client client1 = null;
client1 = new Client(new URL(url));
Object[] strResult1 = null;
strResult1 = client1.invoke(methodname, new Object[]{reqParam});
result = (String) strResult1[0];
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
方式二:
使用 Myeclipse 自带工具生成客户端代码
新建一个Java工程,右键项目新建other,选择web services 的Web Service Client 在Service definition中填入wsdl地址如:
http://127.0.0.1:9529/mchs_service/services/labresultWebService?wsdl
finish 就可以生成客户端代码了。
其它方式可参考:
http://www.cnblogs.com/feiyi211/p/6856553.html