最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于CXF搭建webService的實例講解

 更新時間:2017年11月12日 10:46:32   作者:水波粼粼  
下面小編就為大家?guī)硪黄贑XF搭建webService的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1.導(dǎo)入相關(guān)jar包,具體哪些包我記不太清了

2.在applicationContext中加入相關(guān)配置信息,如下所示:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jaxws="http://cxf.apache.org/jaxws" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
              http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
              http://www.springframework.org/schema/context 
              http://www.springframework.org/schema/context/spring-context-3.0.xsd 
              http://cxf.apache.org/jaxws 
              http://cxf.apache.org/schemas/jaxws.xsd"> 
 
    <context:component-scan base-package="com.cxf.bo"/> 
   
    <import resource="classpath:META-INF/cxf/cxf.xml"/> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> 
    
    <jaxws:endpoint 
      id="OrderWS" 
      implementor="com.cxf.spring.ws.OrderWSImpl"http://類所在地址或者#+對應(yīng)bean的id
      address="/OrderWS" > //隨意命名
      <jaxws:features> 
       <bean class="org.apache.cxf.feature.LoggingFeature" /> 
      </jaxws:features> 
    </jaxws:endpoint> 
</beans>

3.在web.xml文件中加入:

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

4.在service層加入:

@WebService
public interface OrderWS {
  @WebMethod
  public Order getOrderById(int id);
}

5.若存在struts2,會發(fā)生沖突,則重寫過濾器

5.1 寫一個類ExtendStrutsFilter:

package com.nbu.retailer.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

public class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter{
  private static Logger log = LoggerFactory.getLogger(ExtendStrutsFilter.class); 
  @Override 
  public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) 
      throws IOException, ServletException { 
      try { 
        HttpServletRequest request = (HttpServletRequest) req; 
        // 判斷是否是向WebService發(fā)出的請求 
        if (request.getRequestURI().contains("/CXFServlet")) { 
           // 如果是來自向CXFService發(fā)出的請求 
           chain.doFilter(req, res); 
         } 
         else { 
           // 默認(rèn)action請求 
            super.doFilter(req, res, chain); 
         } 
       } 
      catch (Exception e) { 
         log.error(e.getMessage()); 
         e.printStackTrace(); 
      } 
  } 

}

5.2 在web.xml中改變過濾器的地址:

<!-- struts2的過濾器-->
   <filter>
    <filter-name>struts2</filter-name>
    <!--
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    -->
    <!-- 自定義struts2過慮器類 用于解決struts2把cxf的請求當(dāng)action處理的問題-->
    <filter-class>com.nbu.retailer.filter.ExtendStrutsFilter</filter-class>
  </filter>

5.3 注意,CXF的url和struts2的url不能相同。之前就這個問題困擾了我好久才發(fā)現(xiàn)的。

以上這篇基于CXF搭建webService的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java的位運算

    詳解Java的位運算

    這篇文章主要介紹了詳解Java的位運算,程序中的所有數(shù)在計算機(jī)內(nèi)存中都是以二進(jìn)制的形式儲存的。位運算就是直接對整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作,需要的朋友可以參考下
    2023-04-04
  • Java集合框架迭代器Iterator實現(xiàn)原理解析

    Java集合框架迭代器Iterator實現(xiàn)原理解析

    這篇文章主要介紹了Java集合框架迭代器Iterator實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • java 中冒泡、二分、快速算法詳解

    java 中冒泡、二分、快速算法詳解

    這篇文章主要介紹了java 中冒泡、二分、快速算法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Open-Feign整合hystrix降級熔斷實戰(zhàn)記錄

    Open-Feign整合hystrix降級熔斷實戰(zhàn)記錄

    這篇文章主要介紹了Open-Feign整合hystrix降級熔斷實戰(zhàn)記錄,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot + Shiro前后端分離權(quán)限

    SpringBoot + Shiro前后端分離權(quán)限

    這篇文章主要為大家詳細(xì)介紹了SpringBoot + Shiro前后端分離權(quán)限,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • SpringBoot使用JUL實現(xiàn)日志記錄功能

    SpringBoot使用JUL實現(xiàn)日志記錄功能

    在SpringBoot中,我們可以使用多種日志框架進(jìn)行日志記錄,其中,JUL(Java Util Logging)是Java平臺自帶的日志框架,它提供了簡單的 API 和配置,可以輕松地進(jìn)行日志記錄,本文將介紹如何在 SpringBoot中使用JUL進(jìn)行日志記錄,并提供示例代碼
    2023-06-06
  • Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度

    Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度

    這篇文章主要介紹了Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度,Spring中使用Quartz 有兩種方式,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • 基于java構(gòu)造方法Vector修改元素源碼分析

    基于java構(gòu)造方法Vector修改元素源碼分析

    本篇文章是關(guān)于ava構(gòu)造方法Vector源碼分析系列文章,本文主要介紹了Vector修改元素的源碼分析,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • SpringBoot入門之集成Druid的方法示例

    SpringBoot入門之集成Druid的方法示例

    這篇文章主要介紹了SpringBoot入門之集成Druid的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 關(guān)于SpringCloud中Ribbon的7種負(fù)載均衡策略解析

    關(guān)于SpringCloud中Ribbon的7種負(fù)載均衡策略解析

    這篇文章主要介紹了關(guān)于SpringCloud中Ribbon的7種負(fù)載均衡策略解析,服務(wù)端負(fù)載均衡器的問題是,它提供了更強(qiáng)的流量控制權(quán),但無法滿足不同的消費者希望使用不同負(fù)載均衡策略的需求,而使用不同負(fù)載均衡策略的場景確實是存在的,需要的朋友可以參考下
    2023-07-07

最新評論

东乡| 平武县| 鄯善县| 辰溪县| 上蔡县| 健康| 汉川市| 买车| 锡林浩特市| 寿宁县| 蓝田县| 南溪县| 西和县| 宁安市| 灌南县| 浦东新区| 内江市| 麻江县| 泸溪县| 鱼台县| 荃湾区| 阿拉善盟| 遂川县| 双鸭山市| 宝坻区| 宝鸡市| 全椒县| 阿合奇县| 巴楚县| 休宁县| 罗城| 九龙坡区| 南汇区| 宜都市| 石嘴山市| 天峨县| 敖汉旗| 叙永县| 吉木萨尔县| 石家庄市| 旌德县|