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("執行成功"); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

但是如果你直接執行就會報如下的類似錯誤:

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)
  • 1
  • 2
  • 3
  • 4
  • 5

該錯誤的解決方案是在生成的檔案的interface中新增@WebService註解即可。例如本專案只需要在 WaiPaiRecordWs 介面中新增@WebService即可。