struts配置如下
<!-- 配置Struts2中央处理器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
axis2配置如下
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
启动tomcat发布webservice后在浏览器中查看时会报如下错误
HTTP Status 404 - There is no Action mapped for namespace [/] and action name [fileManagerWebService]
原因是struts路径是项目下所有页面都由struts来处理,axis的配置无效了
如果将/services/*改为/*呢,经过测试,同样不可行
于是
只能将struts管理的路径缩小,修改的struts配置如下
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/action/*</url-pattern>
</filter-mapping>
只是修改了路径,再访问webservice就OK啦