webservice jax-rs與spring整合

maven工程導入相關座標

<!-- 導入webservice依賴 -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-client</artifactId>
            <version>${cxf.version}</version>
        </dependency>   

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-providers</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
            <version>1.3.7</version>
        </dependency>

applicationContext.xml配置

<!-- id的名稱與你所定義的接口的名稱相同,同時首字母小寫;address:自定義的,名稱最好規範:與ID名稱一樣 -->
<jaxrs:server id="xxxService" address="/xxxService">
     <jaxrs:serviceBeans>
   <!-- 配置服務接口的實現類 -->
       <bean class="com.kayo.main.service.impl.XxxServiceImpl" />
     </jaxrs:serviceBeans>
   <!-- 配置的服務的日誌監聽,不是必須配置 -- >
     <jaxrs:inInterceptors>
       <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
     </jaxrs:inInterceptors>
     <jaxrs:outInterceptors>
       <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
     </jaxrs:outInterceptors>
  </jaxrs:server>
配置的每一個實體類的所有操作

web.xml配置

<servlet>
        <servlet-name>CXFService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

請求路徑:
每一個webservice接口的請求路徑的拼接:
項目的啓動URL + web.xml中url-pattern的路徑+applicationContext-webservice中address + 接口類中的方法中@Path路徑

方法調用

        WebClient.create("請求路徑").type(MediaType.APPLICATION_JSON).post(實體類對象);

webservice中的註解
@GET 查 / @POST 增 / @PUT 改 / @DELETE 刪

@Produces
方法的返回類型 生產者
@Consumes
方法的參數類型 消費者
注:如果返回類型或參數類型是基本數據類型+String,則可省略

@Path 路徑
定義在方法上,表示訪問這個方法的路徑
定義在類名上,表示整個類的訪問路徑 ,等價於在webservices配置文件中配置的 address

@PathParam
方法@Path路徑後所帶的參數
@QueryParam
表單中提交的過來的參數數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章