1. 程式人生 > >CXF中 wsdl2java工具的使用方法

CXF中 wsdl2java工具的使用方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

 

 

下面是一個使用wsdl2java的例子:

C:\Users\Administrator>F:

F:\>cd misps2

F:\misps2>wsdl2java -d .

http://10.10.31.25/MSPGWebPub/MSPGS/MPService.svc?wsdl

F:\misps2>




方法2:F:\phone>wsdl2java -d src -client http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?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.

 

 

wsdl2java -p QueryHrEmployee -d e:\ -all http://10.70.158.127
:8080/axis2_14/services/QueryHrEmployee?wsdl

 

方法二:使用wsdl2java生成客戶端

1、需要 一個包:apache-cxf-2.6.1.gz

這個包裡有好多jar包,一定要下載下來。

將此包解壓,我是放在:E:\CXF\apache-cxf-2.6.1

  


java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
2、將URL呼叫成功的頁面內容,另存為XML
    
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
3、在cmd中通過wsdl2java生成客戶端檔案
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
cd 進入apache-cxd-2.6.1\bin目錄
執行命名:
wsdl2java -p service.webservice.client.demo -d F:\MyDocuments\Java\ws\InterfaceControlApp\src -verbose "F:\demoForWebSerivce.xml"
解析
wsdl2java -p 包名 -d 生成檔案路徑 -verbose "wsdl檔案路徑"
然後再拷貝到專案裡
包名:檔案存放的包名,可以寫專案中包路徑
生成檔案路徑 :檔案存放路徑,可以直接寫專案路徑
wsdl檔案:在IE中執行服務端URL顯示的XML另存為XML檔案。
我是直接到專案路徑了,生成前:
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
生成後:
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
報錯處理:
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
4、寫MAIN呼叫
     package common;
import javax.xml.ws.Service;
import service.webservice.client.demo.DemoForWebService;
import service.webservice.client.demo.DemoForWebServiceImplService;
import service.webservice.client.demo.User;
/**
* @author 作者 E-mail:
* @version 建立時間:2013-3-20 下午03:39:29
* 類說明
*/
public class TestWSClientByZBY {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  Service service = Service.create(DemoForWebServiceImplService.SERVICE);
 
  String endpointAddress = "http://127.0.0.1:8080/InterfaceControlApp/webservice/demoForWebService?wsdl";
  service.addPort(DemoForWebServiceImplService.HTTPPort, javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
  // DMSSender dms = service.getPort(DMSSender.class);
  DemoForWebService dms = service.getPort(DemoForWebServiceImplService.HTTPPort,DemoForWebService.class);
   User user;
  try {
   user = dms.getUserById("admin");
   System.out.println(user.getXtczdm());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}
}
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
在服務端的實現類中@WebService(endpointInterface = "service.webservice.DemoForWebService",targetNamespace="http://webservice.service/",portName="HTTP_Port")
成功後:
java cxf webservice 生成客戶端 呼叫 服務端 - 比目魚 - 比目魚的部落格
呼叫完成。

 

 

 

利用CXF wsdl2java生成java程式碼 

2012-08-24 18:06:52|  分類:java|  標籤:|字號訂閱

環境配置:

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


http://blog.chinaunix.net/u2/73798/showart_2002108.html

http://hgoldfish.mysmth.net/2007/11/04/cxfceuuaaoathinaeoeie-2/

例項:wsdl2java -p com -d d:/src -client  http://portal.emp.gome.inc/HOwebapp/Gome.OA.ProcessService/Service/ProcessService.asmx?wsdl


























































Apache CXF 是一個Service框架,他簡化了Service的建立, CXF實現了JAX-WS2.0規範,並通過了JAX-WS2.0 TCK; CXF和Spring無縫整合;CXF支援多種傳輸協議(HTTP, JMS, Corba等), 支援多種Binding資料格式(SOAP,XML,JSON等), 支援多種DataBinding資料型別(JAXB, Aegis) 。CXF基於Interceptor的架構,使得整個框架非常易於擴充套件。 二.  如何釋出並呼叫簡單的web service例項 2.1.下載:apache-cxf-2.1.1   http://cxf.apache.org/download.html 2.2. 新建java project ,並加入apache-cxf-2.0.7/lib所有包,編寫要釋出的web service 介面和實現 import javax.jws.WebService; @WebService  public interface HelloWorld {        public String sayHello(String text);   } import javax.jws.WebService;   @WebService(endpointInterface="test.HelloWorld")   public class HelloWorldImpl implements HelloWorld {         public String sayHello(String text) {                     return "Hello" + text ;       }     }  @WebService 註解表示是要釋出的web 服務 name:用於Interface,屬對映到wsdl:portType element的name屬性。 
targetNamespace:用於Interface和implement,如果不指定,預設會使用包名倒序做為wsdl名空間。 serviceName:用於implement,表示wsdl服務名。 portName:用於implement,表示wsdl:port 的name屬性。 endpointInterface:用於implement,指定Interface全名,包括包名。 2.3.釋出web service public class Server {     protected Server() throws Exception {          System.out.println("Starting Server");          HelloWorldImpl implementor = new HelloWorldImpl();          String address = " http://localhost:9000/helloWorld";          Endpoint.publish(address, implementor);     }     public static void main(String args[]) throws Exception {         new Server();         System.out.println("Server ready...");         Thread.sleep(5 * 60 * 1000);         System.out.println("Server exiting");         System.exit(0);     } } 執行後,在瀏覽器中輸入 http://localhost:9000/helloWorld?wsdl將顯示這個web service的wsdl.說明web service釋出成功。 2.4.下面就開始建立一個客戶端程式,訪問這個web service, 同樣新建java project ,並加入apache-cxf-2.0.7/lib所有包,由於CXF已經提供wsdl轉化成java 的命令工具,所以建立一個build.xml,用來生成客戶端程式。Bulid.xml內容如下: <?xml version="1.0"?> <project name="cxf wsdl2java" basedir=".">      <property name="cxf.home" location ="${basedir}/WebRoot/WEB-INF/"/>    <path id="cxf.classpath">       <fileset dir="${cxf.home}/lib">          <include name="*.jar"/>       </fileset>    </path>         <target name="cxfWSDLToJava">       <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">          <arg value="-client"/>          <arg value="-d"/>          <arg value="src"/>          <arg value=" http://localhost:9000/helloWorld?wsdl"/>          <classpath>             <path refid="cxf.classpath"/>          </classpath>       </java>    </target> </project> 或者:配置環境變數%CXF_HOME%=E:/WebService/CXF/apache-cxf-2.1.1/apache-cxf-2.1.1(以我的目錄為例),並在PATH後加上;%CXF_HOME%/bin 在cmd命令列中輸入wsdl2java如果顯示其用法表示配置好了。 輸入:wsdl2java -d src - client  http://localhost:9000/helloWorld?wsdl 其作用上面的build.xml作用一樣。 附加: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 2.5.呼叫web service public class MyClient {       public static void main(String[] argv) {         HelloWorld  hello = new HelloWorldImplService().getHelloWorldImplPort();         System.out.println(hello.sayHello("Tom") );        }     } 注意:執行時,要一定先要釋出web sevice. 三.  參考資料 1.CXF 主頁:  http://cxf.apache.org/ 2. CXF中文討論組:  http://groups.google.com/group/cxf-zh  3. Web service:  http://www.w3school.com.cn/webservices/index.asp
4. WSDL:  http://www.w3school.com.cn/wsdl/index.asp
5. SOAP:http://www.w3school.com.cn/soap/index.asp ----------------------------------------------------------- 以上是參考資料,以下是自己的實踐----------------------------------------------------------------------------- 我在操作過程中,發現了一個方法的引數resultCode,以及另一個方法的voteCode都讓我誤操作定義為了錯誤的型別。 因此需要對 WSDL進行修改後,將其放置在:D:/test/0328目錄下面。 我按照上面的地址下載到二級制壓縮檔案  apache-cxf-2.3.3.zip以後要注意,不要下載包含有src的 例如: apache-cxf-2.3.3-src.tar.gz 解壓縮到D:/work/lib/apache-cxf-2.3.3 配置環境變數 CXF-HOME  為“D:/work/lib/apache-cxf-2.3.3” 增加  path  “%CXF-HOME %bin” 後, 在cmd下執行 D:/>cd test D:/test>cd 0328 D:/test/0328>wsdl2java -frontend jaxws21 -p com.chinatelecom.jx.vote.inf.partner
 *wsdl
 

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述