根據wsdl的url,使用axis1.4生成客戶端,並且對webservice進行調用
1、到www.apache.org上去下載axis-bin-1_4.zip,如要關聯源代碼就把axis-src-1_4.zip也下載下來。
2、建一個java項目,導入axis-bin-1_4.zip下的lib文件下的所有jar包
3、右鍵項目/Run As/Run Configurations...
4、然后在Main標簽下選擇對應的Project以及Main class:org.apache.axis.wsdl.WSDL2Java
5、然后在Arguments標簽下的Program arguments:下輸入-o Client -d Session -Strue D:\project\FIIS_CRJ_AXIS\dest\test.wsdl
其中D:\project\FIIS_CRJ_AXIS\dest\test.wsdl也可以是具體的wsdl路徑http://192.168.1.10:7001/test/test?WSDL
6、最后點Run運行————這時如果報缺少jar包,可以找spring的依賴包,里面有很多,這里還要加入 com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail- 1.4.0.jar。
7、執行上面的操作后會在我們的項目下生成一個Client文件,文件下的內容就是調用webservice的客戶端代碼
使用:都會有一個本地類 Locator 以及Soap,創建出這兩個就可以調用對應的webservice方法了
例:
TraditionalSimplifiedWebServiceLocator locator = newTraditionalSimplifiedWebServiceLocator();
TraditionalSimplifiedWebServiceSoap stub =(TraditionalSimplifiedWebServiceSoap)locator.getTraditionalSimplifiedWebServiceSoap();
System.out.println(stub.toTraditionalChinese("張三"));
還要一種情況:調用的webservice前要登陸,這種情況怎么處理?
1、先登陸得到sessionId
2、把sessionId設置到header里,找到 Stub類下的createCall()方法
protected org.apache.axis.client.Call createCall() throwsjava.rmi.RemoteException {
try {
org.apache.axis.client.Call _call = super._createCall();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//設置頭信息
SOAPHeaderElement hElement = new SOAPHeaderElement(newQName("sessionInfo"));
SOAPElement sid = hElement.addChildElement("sessionId");
sid.addTextNode(Remote_SessionInfo.getSessionId());
_call.addHeader(hElement);
這樣就可以調用webservice了。
