Apache CXF 入門示例

jopen 11年前發布 | 36K 次閱讀 Apache CXF WEB服務/RPC/SOA

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服務端:
Apache 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.java

public 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信息。

Apache CXF 入門示例

編寫客戶端代碼Client.java

/**

  • Web Service客戶端
  • @author yanghong.zhou / public class Client { public static void main(String[] args) {
     HelloWorldImpl factory = new HelloWorldImpl();
     //返回遠程web service的代理
     HelloWorld hw = factory.getHelloWorldImplPort();
     System.out.println(hw.sayHi("hunan"));
    
    } }</pre>在Jetty服務器啟動的情況下,運行Client.java輸出:hunan, The Apache CXF Application!


    </span></span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!