cxf与struts2拦截器冲突的解决方案
最近学习接口,学习了下cxf,用tomcat部署访问的时候,发现接口不能访问;百度了很多,最终找到比较好的解决方案;
sturts2配置: 
<!-- 设置strus拦截器 --> 
<filter> 
<filter-name>struts</filter-name> 
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>struts</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>
cxf拦截器配置: 
<!-- 设置cxf接口配置 --> 
<listener> 
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
</listener>
<servlet> 
<servlet-name>CXFService</servlet-name> 
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
</servlet>
<servlet-mapping> 
<servlet-name>CXFService</servlet-name> 
<url-pattern>/myCXF/*</url-pattern> 
</servlet-mapping>
结果访问的时候,struts率先被执行。
解决该问题好的方案就是重写struts2的拦截器:
package com.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.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter{ 
    public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {  
        HttpServletRequest request = (HttpServletRequest) req;  
        //不过滤的url,可以自行添加  
        if (request.getRequestURI().contains("/myCXF")) {  
            //System.out.println("使用自定义的过滤器");  
            chain.doFilter(req, res);  
        }else{  
            //System.out.println("使用默认的过滤器");  
            super.doFilter(request, res, chain); 
        }  
    }  
}
然后重新配置struts2的拦截器: 
<filter> 
<filter-name>struts</filter-name> 
<filter-class>com.filter.ExtendStrutsFilter</filter-class> 
</filter>
此时访问就没有问题了,对原项目影响不大 同时修改也很方便
cxf与struts2拦截器冲突的解决方案的更多相关文章
- Struts2 拦截器配置以及实现
		@(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ... 
- struts2 拦截器
		拦截器:对Action的访问.可以拦截到Action中某个方法.与过滤器不同,过滤器过滤的是请求.过滤JSP.html.但是拦截器不能拦截jsp.html的访问. Struts2 拦截器在访问某个 A ... 
- Struts2拦截器的使用 (详解)
		Struts2拦截器的使用 (详解) 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈default ... 
- struts2拦截器
		一.自定义拦截器 struts2拦截器类似于servlet过滤器 首先定义一个拦截器这个拦截器实现了Interceptor接口: package cn.orlion.interceptor; impo ... 
- Struts2拦截器模拟
		前言: 接触Struts2已经有一段时间,Student核心内容就是通过拦截器对接Action,实现View层的控制跳转.本文根据自身理解对Struts2进行一个Java实例的模拟,方便大家理解! 示 ... 
- Struts2拦截器初涉
		Struts2拦截器初涉 正在练习struts,本例是从一个pdf上摘抄的例子,那本pdf都不知道叫什么名字,不过感觉很适合初学者. 在这里要实现一个简单的拦截器"GreetingInter ... 
- 浅谈Struts2拦截器的原理与实现
		拦截器与过滤器 拦截器是对调用的Action起作用,它提供了一种机制可以使开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了 ... 
- 基于SSH2框架Struts2拦截器的登录验证实现(转)
		大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了.那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证. 修改数 ... 
- struts2拦截器interceptor的三种配置方法
		1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ... 
随机推荐
- 前端基础之CSS_2
			摘要 盒子模型 浮动 清除 溢出 定位 模态框 rgba 与 opacity透明区别 一.CCS盒子模型 margin:标签与标签之间的距离,主要用于控制标签周围间的间隔,从视觉上达到相互分开的目的 ... 
- LeetCoce 413. Arithmetic Slices
			A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ... 
- sql语句中嵌套2层循环
			declare @year intdeclare @month intset @year=2008 while(@year<=2011)beginset @month=1while(@month ... 
- hdu  4421  和poj3678类似二级制操作(2-sat问题)
			/* 题意:还是二进制异或,和poj3678类似 建边和poj3678一样 */ #include<stdio.h> #include<string.h> #include&l ... 
- jmesa应用
			一直以来,都没发现什么好的分页组件,最初时用过displaytag,仔细研究了一下,发现它并没有别人说的那么强大,至少离自己的期望还很远,因此尝试寻找其它新的分页组件,但很久以来都没发现自己满意的.无 ... 
- Cloud BOS平台-自定义用户联系对象
			适用业务场景:新增用户时,联系对象类型默认为:职员.客户.供应商.客户需要增加一类"承运商",类型选择"承运商"时,联系对象只显示相应的承运商."承运 ... 
- 【BZOJ1225】求正整数(数论)
			题意:对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. n<=50000 思路:记得以前好像看的是maigo的题解 n即为将m分解为质数幂次的乘积后的次数+1之积 经检验只需要 ... 
- 移动web页面字体大小三
			<script type="text/javascript"> (function (doc, win) { var docEl = doc.documentEleme ... 
- HDU 5883  欧拉路径异或值最大 水题
			The Best Path Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ... 
- React学习及实例开发(三)——用react-router跳转页面
			本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.定义路由 1.安装react-router npm install react-router@ --sav ... 
