運行命令WSDL2Java。
生成服務端代碼命令是WSDL2Javauriwsdl文件全路徑p包名dxmlbeanss,sssdssio生成的java代碼存放路徑。生成客戶端包代碼命令是WSDL2Java至uriwsdl文件全路徑p包名dxmlbeansso生成的java代碼存放路徑。
源碼就是指編寫的最原始程序的代碼。運行的軟體是要經過編寫的,程序員編寫程序的過程中需要他們的語言。音樂家用五線譜和音符,建築師用圖紙和筆,那程序員的工作的語言就是源碼了。
❷ 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(參數)這樣寫就行了。
❸ java web項目怎麼使用wsdl文件
webservice的發布一般都是使用WSDL(web service descriptive language)文件的樣式來發布的,在WSDL文件裡面,包含這個webservice暴露在外面可供使用的介面。
注意,以下的代碼並沒有經過真正的測試,只是說明這些情況,不同版本的Axis相差很大,最好以apache網站上的例子為准,這里僅僅用於說明其基本用法。
1,直接AXIS調用遠程的web service,直接調用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用遠程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL裡面描述的介面名稱
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//介面的參數
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設置返回類型
String temp = "測試人員";
String result = (String)call.invoke(new Object[]{temp});
//給方法傳遞參數,並且調用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
2,直接SOAP調用遠程的webservice ,這種模式很少用,但是網路上有人貼出來,也轉過來 :
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import java.io.*;
import java.net.*;
import java.util.Vector;
public class caService{
public static String getService(String user) {
URL url = null;
try {
url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();
// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user, null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url,"");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue ();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
}
❹ wsdl2java 生成服務端代碼後怎麼部署到weblogic下
打成包部署上去
❺ 怎麼用cxf的wsdl2java解析wcf生成的wsdl
1、下載apache-cxf-2.6.2在環境變數中配置CXF_HOME ,在PATH中加入%CXF_HOME%\bin 2、輸入cmd 進入控制窗口,輸入wsdl2java看是否配置成功
3、參考它的文檔看這個工具的具體參數的用法
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
❻ axis2的wsdl2java命令可以生成wsdl的服務端和客服端代碼,請問各位大牛這個客服端和服務端的有什麼區別。
生成的服務端是你本機作為服務的提供者;生成客戶端是為了你去調用服務端提供的服務。
如果你想調用服務的話,當然是用生成的客戶端代碼了。
❼ 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);
即可解決該沖突,
❽ axis2 wsdl2java 生成服務端代碼怎麼去實現
wsdl通常是由介面提供商生成的,也就是說服務端代碼在提供商那。 自己通過wsdl2java命令可生成服務端與客戶端的代碼,但是服務端中的代碼只包含介面定義,沒有代碼實現.測試的時候可以自己實現,只需要保證數據能正確傳輸就行了。
❾ 最近用Eclipse做個Java項目用於讀取服務端的wsdl文件,這個項目也是用Eclipse的插件wsdl2java生成的
有jar包沒有被導出來。
或者在你生成的執行文件中沒有包含程序運行所需要的jar包。
按照錯誤提示,你可以找找axiom-impl.jar 這個包是不是有什麼問題。
還有一種可能,你可以試試, 就是在運行這個可執行文件的時候用右鍵,選「以管理員的方式運行」
❿ cxf的wsdl2java命令和JDK的wsimport命令的區別和使用
JDK提供了一個wsimport.exe的命令,主要是用於將WebService生成客戶端代碼,然後好調用WebService。
wsimport 是根據JDK1.6.0_21及以上的生成本地代碼的,它只能解析伺服器端的SOAP協議為1.1,不能解析SOAP1.2的協議。如果解析SOAP1.2 將會解析不完全。
用法:前提是已經將JDK配置為了path環境變數 C:\Documents and Settings\Administrator>wsimport -s F:\ -p com.client.jdk.wsimport http://localhost:1111/hello?wsdl
-s 後面指定生成文件的路徑,-p 自定義類包 http://localhost:1111/hello?wsdl 是wsdl的路徑。
CXF也提供了根據WSDL生成客戶端代碼的命令wsdl2java.exe 。它是根據jdk1.7生成的本地代碼,所以,需要對生成的代碼做一點點修改。
它可以支持SOAP1.1 和SOAP1.2的協議。前提是你已經下載了Apache CXF 並且將wsdl2java.exe配置為了path環境變數。
用法:C:\Documents and Settings\Administrator>wsdl2java -d F:\ -p com.client.cxf http://localhost:1111/hello?wsdl
-d 後面指定生成文件的路徑,-p 自定義類包 http://localhost:1111/hello?wsdl 是wsdl的路徑。