A. CXF 根據WSDL生成客戶端代碼, 如果WSDL需要賬號密碼在哪填寫
你下載cxf後 在bin目錄下可以看到wsdl2java.bat這個工具(現在最新的版本可能已經沒有這個工具了 注意版本)
到這個目錄下後 wsdl2java -client wsdl路徑(可以是本地wsdl文件也可以是網路wsdl路徑)
默認在該文件夾下生成
也可以添加一下-p 生成路徑
例如wsdl2java -p com.test -client wsdl路徑
會生成一個com的文件夾test文件夾下面有代碼
B. Axis2根據wsdl文件生成本地Java代碼
參考:http://blog.csdn.net/yakson/article/details/8997622
JAVA生成WebService客戶端命令3種方式
C. 如何使用axis2生成wcf客戶端代碼
下載axis2-1.5.4-bin.zip文件並解壓。
設置axis2的環境變數,如下圖所示:
利用axis2中的wsdl2java.bat生成客戶端程序。
先啟動Tomcat7並在IE里運行http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl 看看服務端是否正常解析。
%AXIS2_HOME%binwsdl2java -uri http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl -paxis2.service.server -o stub
其中-uri參數指定了wsdl文件的路徑,可以是本地路徑,也可以是網路路徑。-p參數指定了生成的Java類的包名,-o參數指定了生成的一系列文件保存的根目錄。在執行完上面的命令後,讀者就會發現在當前目錄下多了個stub目錄,可以找到一個HelloServiceStub.java文件,該文件復雜調用WebService,讀者可以在程序中直接使用這個類。
運行-->cmd-->具體命令如下:
要先進入axis2的bin目錄然後運行wsdl2java.bat
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:Documents and SettingsJambhala>d:
D:>cd D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>wsdl2java -uri http://l
ocalhost:8081/TestAxis2Ws/services/HelloService?wsdl -p axis2.service.server -o
stub
Using AXIS2_HOME: D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4
Using JAVA_HOME: C:Javajdk1.6.0
Retrieving document at 'http://localhost:8081/TestAxis2Ws/services/HelloService?
wsdl'.
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>
這時到axis2的bin目錄下會發現出現了一個stub目錄,如下圖所示:
其中HelloServiceStub.java是客戶端程序,HelloServiceCallbackHandler.java是非同步客戶端程序。
把這兩個類復制到上次已經建立好的服務端工程里
注意:這個地方復制進來後會報錯的,因為在D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4binstubsrcaxis2serviceserver下的類路徑為package axis2.service.server;需要改成packageaxis2.service.client;並且需要把HelloServiceStub.java和HelloServiceCallbackHandler.java相關的報錯位置都把路徑改一下,不要閑煩,要改的地方還滿多的呢。
創建帶main方法的StubClient.java類文件,代碼如下:
package axis2.service.domain;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import axis2.service.client.HelloServiceStub;
public class StubClient {
public static void main(String[] args) {
HelloServiceStub stub = null;
try {
stub = new HelloServiceStub();
HelloServiceStub.SayHello sh = new HelloServiceStub.SayHello();
sh.setName("於士博");
System.out.println(stub.sayHello(sh).get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
D. wsdl2java怎麼生成客戶端代碼
對於wsdl文件,不需要用命令來生成,在eclipse中下載xfire插件,直接導入wsdl格式的文件會自動轉化為java文件 ,如果是myeclipse,裡面自帶有wsdl文件導入器,直接導入就能生成java文件。
E. axis2的wsdl2java命令可以生成wsdl的服務端和客服端代碼,請問各位大牛這個客服端和服務端的有什麼區別。
生成的服務端是你本機作為服務的提供者;生成客戶端是為了你去調用服務端提供的服務。
如果你想調用服務的話,當然是用生成的客戶端代碼了。
F. 如何用axis的WSDL2Java生成webservice介面的客戶端的java代碼
你可以試試直接選擇「import as web service」這個向導,看能不能把web mole弄出來
你可以試試JB9開發,我在JB9上試過,可以完全使用向導開發的web service(不過還是有點小問題:新增一個web service會覆蓋以前的web service;JB9向導生成的WSDL文件竟然不符合w3c的標准)
就不要使用JB2006開發web service,現在AXIS2.0都已經出來了,比1.2的強大不少。你到apache網站上下載新版本,按照axis的user guide文檔就可以在純文本編輯工具下實現web service
通過JBuilder向導開發的web service在你完成開發後也許你仍然不知道web service的工作流程,不利於自己的水平提高。建議使用純文本編輯工具,配合ANT整合開發web service。
G. axis2 wsdl2java 生成服務端代碼怎麼去實現
set Axis_Lib=E:-INFlib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=E:workspaceTestServices
set Package=com.test
%Java_Cmd% org.apache.axis2.wsdl.WSDL2Java -o %Output_Path% -p %Package% -ss -uri E:.wsdl
H. eclipse上怎麼使用wsdl2java工具生成webservice客戶端
一、用Eclipse調用Axis的wsdl2java
1.在eclipse裡面新建一個項目或已有的項目;
2.導入
activation.jar
axis.jar
commons-discovery.jar
commons-logging-1.0.3.jar
jaxrpc.jar
saaj.jar
wsdl4j-1.5.2.jar
包
3右擊你的工程-Run As-Run...-右擊New,新建 new configuration ,將Include libraries when searching for a main class勾上,再點search,輸入wsdl2java,再Arguments里把要生成的web service URI或wsdl文件寫進去,最後點run。
(轉自:http://www.blogjava.net/willpower88/archive/2006/11/22/82887.html)
二、利用myeclipse建立WebServiceClient
1.在Web工程上右鍵-->new-->Other-->MyEclipse下的WebService下的Web Service Client2.在打開窗口上的Project處選擇要放入哪個工程,然後選擇WSDL URL,把WebService地址填上.也可以選擇本地wsdl文件
I. springmvc框架如何實現像webservice一樣通過wsdl2Java生成客戶端代碼
在用到web service時,如果是調用自己開發的web service還好,可以有一個方法的介面或參數對象實體類什麼的,但如果是調用第三方的服務,除了得到web service服務地址的wsdl文檔外,沒有任何實質性編碼的東西,寫原生調用太麻煩,這時就需要自己寫一個方法的介面類。
這個,目前已經有比較成熟的工具,可以自動生成,下面作一下簡單的介紹。
apache的wsdl2java工具,目前貌似CXF和axis各有一套,使用方式大同小異,但生成的代碼會有所區別,這時說的是CXF提供的wsdl2java工具。
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空間,也就是要生成代碼的包名:
-d 指定要產生代碼所在目錄
-client 生成客戶端測試web service的代碼
-server 生成伺服器啟動web service的代碼
-impl 生成web service的實現代碼
-ant 生成build.xml文件
-all 生成所有開始端點代碼:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
詳細用法見:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
一開始使用了CXF的這套工具,發現不是很方便,畢竟依賴CXF提供的工具jar包,個人不是很喜歡用。
後來發現JDK居然也自帶了對web service生成java代碼的功能,貌似1.6版本開始的,試用後發現效果十分不錯,果斷投入它的懷抱。下面作下簡單的介紹,以備忘。
打開jdk下的bin目錄 看下能否找到"wsimport.exe"這個文件
一般情況下都會有
如果沒有則說明你的JDK不支持這個功能
然後在DOS窗口下輸入wsimport 敲回車
如果提示錯誤的話 說明你的JDK環境變數還沒有配好
一句話總結,如果你在dos窗口下輸入wsimport正常,就可以
如果OK的話 輸入以下命令就可以將wsdl文件生成java文件了
wsimporthttp://127.0.0.1/TicketMobile/services/Cococ?wsdl -keep -p com.llg.ws2 -s g:/ws
參數說明
wsimport 這個是必須的 該工具的名稱
http://127.0.0.1/TicketMobile/services/Cococ?wsdl wsdl文件
-keep 是否生成源文件
-p com.llg.ws2 生成後的java包名
-s g:/ws 生成後放哪個目錄
但是前幾天,在對一個第三方提供的web service使用該工具生成java代碼的時候,居然出錯了,網上查找後終於找到原因。
使用cxf wsdl2java或javax wsimport工具的時候,可能會遇到關於生成的Response類文件名沖突的問題
Console代碼
WSDLToJavaError:ThrownbyJAXB:Aclass/interfacewiththesamename"***"isalreadyinuse..
目前可選擇的方案:
apache的wsdl2java工具,使用-autoNameResolution自動處理
wsdl2java -autoNameResolutionhttp://hello.joy2everyone.com/yourWebService?wsdl
JDK自帶的工具
wsimport -p com.test.client -keephttp://hello.joy2everyone.com/yourWebService?wsdl-B-XautoNameResolution
2.如果web service是己方開發的,可以修改代碼,使用自定義bindings,詳細可看sun webservice文檔
例如:
Java代碼
@WebMethod
@WebResult(name="response")
(@WebParam(name="request")ValidateCCRequestrequest);
這個情況下定義的方法名,如果使用工具生成客戶端代碼,很可能存在Response沖突,因為定義的wsdl中會有一個關於介面方法的message
<wsdl:message name="validateCCResponse">
</wsdl:message>
方法名定義的message與介面定義返回的ValidateCCResponse,在工具生成客戶端代碼時就會產生命名沖突。
但是通過更改介面方法名為:
Java代碼
@WebMethod
@WebResult(name="response")
(@WebParam(name="request")ValidateCCRequestrequest);
即可解決該沖突,
J. java2wsdl生成的客戶端代碼怎麼調用
首先, 你要先把你的WS服務啟動起來,就是 比如ht tp:/ /localhost:8080/Example/services/HelloWorldService?wsdl
然後在你的另一個項目中建一個Webservice Client 客戶端,用來訪問你的WS服務。
建立Webservice Client 方法如下,在Eclipses中建立一個java工程,然後在src上右鍵--NEW---Other---Web Service Client --Xfire--在WsdL url 中寫上htt p:/ /localhost:8080/Example/services/HelloWorldService?wsdl-----下一步結束。
在src里的會出現一些java文件,你找一個以Client結束的java文件,在裡面的main方法中會有個service對象,現在你就可以直接用這個對象了,service.peerstatus(參數)這樣寫就行了。