当struts2和cxf同时使用时,启动tomcat会报出错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined
造成这种情况的原因是struts2的过滤器:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
配置拦截了CXF的请求,总结了两种解决办法:
一:将struts2的拦截改为.action(该方法需要Struts2的访问路径都要以.action结束)
二.自定义一个struts2的拦截器,继承struts2的拦截器,在拦截器中对于cxf的请求放行
自定义过滤器
然后,将自定义的过滤器在web.xml中配置
这样就可以解决两个拦截器冲突的问题