標籤:java webservice demo 源碼
對方提供的webservice是用c#寫的,而我這個方案對於java或c#(親測過)提供的webservice都可以使用。具體步驟如下:
1、建立一個普通的java項目,在項目上右鍵new–other–web service client –next,在框內輸入webservice地址,例如:http://10.10.10.60:7000/srv_waipaiItem/ws/wp?wsdl(地址輸入完後需要等待一兩秒,next才可點擊)
2、輸入正確的webservice地址後,一路finish後會在項目的src下生產類似的目錄檔案:
類名稱最短的那個一般就是你需要的檔案名稱字。
3、需要添加的jar包如下:jar包的(免積分):http://download.csdn.net/detail/zl544434558/8561227
4、測試代碼的main方法:
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import com.ciming.waipaiItem.ws.WaiPaiRecordWs;public class TestWebServiceClient { public static void main(String[] args) throws Exception {JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 註冊WebService介面 factory.setServiceClass(WaiPaiRecordWs.class); // 設定WebService地址String url = "http://10.10.10.61:7001/srv_waipaiItem/ws/wp?wsdl"; factory.setAddress(url); WaiPaiRecordWs record = (WaiPaiRecordWs) factory.create(); //介面提供的方法名字為getDeliverySingleString jsonString = record.getDeliverySingle("adk", "adkPwd", "003300114112150914", "hz2_2"); System.out.println(jsonString); System.out.println("執行成功"); }}
但是如果你直接運行就會報如下的類似錯誤:
Exception in thread "main" javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method getDeliverySingle. at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123) at com.sun.proxy.$Proxy17.getDeliverySingle(Unknown Source) at com.evan.webService.test.TestWebServiceClient.main(TestWebServiceClient.java:19)
該錯誤的解決方案是在產生的檔案的interface中添加@WebService註解即可。例如本項目只需要在 WaiPaiRecordWs 介面中添加@WebService即可。
至此java已經可以正常調用遠端webservice了。而且跟調用本地方法一樣方便。項目的整個demo:http://download.csdn.net/detail/zl544434558/8561301
java調用webservice介面完整源碼