You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat部署SOAP服务报错:cxf与AxisServlet URL映射冲突

解决Tomcat 10中CXF与AxisServlet的URL映射冲突问题

问题根源

你的项目中同时配置了Apache CXF的cxf Servlet和Axis的AxisServlet,两者都绑定了/services/*这个URL路径模式。Tomcat不允许同一URL模式被多个Servlet映射,直接导致项目上下文/SOAPExample启动失败;同时Eclipse尝试通过Axis部署服务时找不到对应资源,抛出IWAB0489E和404错误。

解决方案

方案1:移除Axis相关配置(推荐,因为你使用CXF构建SOAP服务)

  • 打开项目的web.xml文件,定位到AxisServlet的配置代码块,直接删除:
<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>
  • 检查项目的依赖库,删除所有Axis相关的JAR包(如axis.jar、axis-ant.jar等),彻底清除Axis相关组件。

方案2:修改其中一个Servlet的URL映射(仅当必须保留Axis时使用)

如果确实需要同时保留AxisServlet,修改它的URL映射路径,避免和CXF冲突:

<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/axis-services/*</url-pattern>
</servlet-mapping>

后续访问Axis相关服务时,需使用新的URL路径(如http://localhost:8080/SOAPExample/axis-services/xxx)。

额外注意事项

  • Tomcat 10基于Jakarta EE规范,而Apache CXF 2.x仅支持Java EE,两者存在兼容性差异,建议升级到CXF 3.6及以上版本(支持Jakarta EE),避免后续出现更多兼容性问题。
  • 清理Eclipse服务器缓存:右键Tomcat服务器 → Clean...,再选择Clean Tomcat Work Directory,之后重新部署项目,确保旧配置被完全清除。

内容的提问来源于stack exchange,提问作者vico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:30:47