1. 程式人生 > >java呼叫webservice介面完整原始碼

java呼叫webservice介面完整原始碼

對方提供的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(); //介面提供的方法名字為getDeliverySingle String 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即可。