1. 程式人生 > >WebService Spring整合Jax-rs規範 使用CXF框架Restful的程式設計風格 編寫服務端

WebService Spring整合Jax-rs規範 使用CXF框架Restful的程式設計風格 編寫服務端

前提是專案SSM框架搭建好。

搭建cxf框架,

一、首先,將框架所需要的jar匯入,pom.xml檔案中

<!-- cxf 進行rs開發 必須匯入 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxrs</artifactId>
    <version>3.0.1</version>
</dependency>
<!--cxf 客戶端 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-client</artifactId>
    <version>3.0.1</version>
</dependency>
<!-- 擴充套件json提供者 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-extension-providers</artifactId>
    <version>3.0.1</version>
</dependency>
<!-- 轉換json工具包,被extension providers 依賴 -->
<dependency>
    <groupId>org.codehaus.jettison</groupId>
    <artifactId>jettison</artifactId>
    <version>1.3.7</version>
</dependency>

二、然後在web.xml中加入

<!-- 配置CXF的Servlet程式-->
<servlet>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/ws/*</url-pattern>
</servlet-mapping>

這裡的url-pattern標籤中的ws是我自定的路徑名字。

三、編寫實體類

   在類前面加入註解  @XmlRootElement(name = "User")

                                       以後把User類轉換成XML格式的資料時候,name下的名字做根節點

四、編寫service介面

     介面前面加註解 @Produces("*/*")                        //表示響應資料的型別,任意MIMK型別

          編寫方法                

                    方法前面加註解                                                                                                                                                                                                   @Get     //請求方式適用於查詢 ; @POST適用新增  ;@PUT適用於修改;@DELETE適用於刪除

                                      @Path("/訪問路徑②名字自定義,可方法名")  

                                                  如果需要傳入引數則  @Path("/訪問路徑②名字/{引數}")              

                                       @Consumes({"application/xml","application/json"})      接收的引數型別

                                       @Produces({ "application/xml", "application/json" })      響應的資料類

五、新建applicationContext-cxf.xml

在配置檔案中填寫需要例項化的WebService需要的介面

 ( 1 )<bean id=“這裡我寫的介面的實現類名首字母小寫”  class=“介面實現類的路徑”/>

                 如:<bean  id="routeServiceImp" class="cn.itcast.service.RouteServiceImp"/>

 ( 2 )<jaxrs:server  address="訪問路徑的名字①">

             <jaxrs:serviceBeans>

                       <ref  bean="寫上邊bean的id名字"/>                //可寫多個

             </jaxrs:serviceBeans>

              <jaxrs: inInterceptors>

                        <bean  class=''org.apache.cxf.interceptor.LoggingInInterceptor''/>

              </jaxrs: inInterceptors>        

              <jaxrs: outInterceptors>

                        <bean  class=''org.apache.cxf.interceptor.LoggingOutInterceptor''/>

              </jaxrs: outInterceptors>

       </jaxrs:server>

最終編寫的服務端已經完成

     訪問路徑為    IP:埠號/專案名/Web中自定義的名字/配置檔案中訪問路徑名字①/方法介面中的訪問路徑名字②

     例如:localhost:8080/CPE/ws/findAll

    之後瀏覽器會顯示資料