這兩天在調試webservices客戶端接口。
在eclipse下使用:New->Other...->Web Service Client。可以通過.wsdl文件或wsdl url生成webservices 客戶端代碼。我使用myeclipse6,會使用XFire的JAR包作爲客戶端的外部包。
服務端開發人員,使用的axis1.4進行開發,在某個接口中方法返回的是一個對象數組。而用上面方法得到的客戶端代碼中返回的卻是一個List,這樣我通過訪問他們卻得不到數據。
於是,我試着換個環境……
axis2:
%AXIS2_HOME%/bin/wsdl2java.bat -uri http://***.***.***.*** 可以把wsdl直接轉化成JAVA代碼。
axis1.4:
axis1就沒有axis2這麼舒服了,要生成客戶端就麻煩點了。
java -cp "d:/axis-1_4/lib/axis.jar;d:/axis-1_4/lib/axis-ant.jar;d:/axis-1_4/lib/commons-discovery-0.2.jar;d:/axis-1_4/lib/commons-logging-1.0.4.jar;d:/axis-1_4/lib/jaxrpc.jar;d:/axis-1_4/lib/log4j-1.2.8.jar;d:/axis-1_4/lib/saaj.jar;d:/axis-1_4/lib/wsdl4j-1.5.1.jar" org.apache.axis.wsdl.WSDL2Java ****.wsdl
或且進入axis/lib目錄 java org.apache.axis.wsdl.WSDL2Java ****.wsdl
這次我這麼執行,還是會出錯的。還需要引入mail.jar activation.jar
1.xfire生成客戶端代碼,通過new ****WSDLClient()與服務端連接,進而得到所需的接口
2.axis2生成客戶端代碼,通過new ****WSDLStub()與服務端連接,進而得到所需的接口
3.axis1.4生成客戶端代碼,通過new ****_ServiceLocator()與服務端連接,進而得到所需的接口