系统中用到webservice,经火龙果指点使用了cxf,现在配置、访问都可以了,但在和struts2整合时问题出现了:
struts2的FilterDispatcher过滤所有的请求
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern/*</url-pattern>
</filter-mapping>cxf配置到ws目录下
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
这样struts2就把cxf的请求给拦截了,导致访问webservice不成功,如果去掉struts2的配置则webservice访问可以正常进行,现在想找一个方法是cxf和struts2能共存,谢谢大家!!
我试过
修改struts2的拦截为:
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
<url-pattern>/frame/*</url-pattern>
<url-pattern>*.action</url-pattern>
</filter-mapping>
这样不可以,访问带有struts2 标签的jsp页面会出错,org.apache.jasper.JasperException: The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag.
struts2的FilterDispatcher过滤所有的请求
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern/*</url-pattern>
</filter-mapping>cxf配置到ws目录下
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
这样struts2就把cxf的请求给拦截了,导致访问webservice不成功,如果去掉struts2的配置则webservice访问可以正常进行,现在想找一个方法是cxf和struts2能共存,谢谢大家!!
我试过
修改struts2的拦截为:
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
<url-pattern>/frame/*</url-pattern>
<url-pattern>*.action</url-pattern>
</filter-mapping>
这样不可以,访问带有struts2 标签的jsp页面会出错,org.apache.jasper.JasperException: The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag.
解决方案 »
- 一个很奇怪的问题【急】
- HTML5 还是 javascript
- 请大侠推荐一个好的打印控件
- 在eclipse里 修改数据库的时候 指定的列本来是有值 当我修改的时候变为空了
- java,xml,web
- struts+spring+hibernate - myeclipse+tomcat+postgres中文乱码问题,急!
- 首次发帖,servlet菜鸟问题,求高手点拨一下.
- 关于web编程中按扭事件的驱动
- 请教virtual machine的问题!!欢迎高手指教!讨论皆有分
- 关于JBOSS3.2.1:JBOSS里通过JNDI查找DATASOURCE是这样的:lookup("java:/myDS"),我想修改为lookup("myDS")怎样做?能通过修改配置文件搞
- jfreechart画图
- ResultSet查询数据库,如何判断查询结果为空?
将<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>放置在上面试试。
我记得以前碰到个问题就是通过改变位置就可以了。
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
是不是其他错误,
有别的出错信息么?
系统中用到webservice,经火龙果指点使用了cxf,现在配置、访问都可以了,但在和struts2整合时问题出现了:
struts2的FilterDispatcher过滤所有的请求
这样struts2就把cxf的请求给拦截了,导致访问webservice不成功,如果去掉struts2的配置则 <filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
<url-pattern>/frame/*</url-pattern>
<url-pattern>*.action</url-pattern>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping> <servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>这样试试