Apache CXF 入門示例
Apache CXF = Celtix + XFire,提供了對 JAX-WS全面的支持,并且提供了多種 Binding 、DataBinding、Transport 以及各種 Format 的支持,并且可以根據實際項目的需要,采用代碼優先(Code First)或者 WSDL 優先(WSDL First)來輕松地實現 Web Services 的發布和使用。
CXF 框架是一種基于 Servlet 技術的 SOA 應用開發框架,要正常運行基于 CXF 應用框架開發的企業應用,除了 CXF 框架本身之外,還需要 JDK 和 Servlet 容器的支持。
下載CXF:http://cxf.apache.org/download.html
簡單的App項目入手
建立CXF服務端:
接口HelloWorld.java
@WebService public interface HelloWorld { @WebMethod String sayHi(@WebParam(name="name") String name); }實現類HelloWorldImpl.java
@WebService(endpointInterface="cn.nevo.cxf.ws.HelloWorld", serviceName="HelloWorldImpl") public class HelloWorldImpl implements HelloWorld {public String sayHi(String name) { return name + ", The Apache CXF Application!"; }
}</pre>
服務端Server.javapublic class Server {public static void main(String[] args) { HelloWorld hw = new HelloWorldImpl(); //使用Endpoint.publish發布Web Service Endpoint.publish("http://192.168.1.14/hello", hw); System.out.println("Web Service發布成功!"); }
}</pre>啟動服務,CXF內置了Jetty服務器,此時可以通過http://192.168.1.14/hello?wsdl訪問暴露接口的詳細信息
建立CXF客戶端:
首先新建一個空的App項目,cmd下進入到此項目的src目錄,輸入:
F:\eclipse\work\cxf_ws_client\src>wsdl2java http://192.168.1.14/hello?wsdl
會自動生成如下紅色方框內所示的代碼,wsdl2java是CXF自帶的命令,其它命令見其bin目錄(配置bin的path),修改了服務端的url后要重新通過wsdl2java命令生成客戶端代碼改變其相應的wsdl信息。
編寫客戶端代碼Client.java/**
- Web Service客戶端
- @author yanghong.zhou
/
public class Client {
public static void main(String[] args) {
} }</pre>在Jetty服務器啟動的情況下,運行Client.java輸出:hunan, The Apache CXF Application!HelloWorldImpl factory = new HelloWorldImpl(); //返回遠程web service的代理 HelloWorld hw = factory.getHelloWorldImplPort(); System.out.println(hw.sayHi("hunan"));
</span></span>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!