4.2.6. 调试和解决 DuplicateServiceException

当你在 JBoss EAP 6 里部署 EAR 时,得到一个 JAR 子部署的 DuplicateServiceException 或显示 WAR 应用程序已经安装的消息,这可能是因为 JBossWS 处理部署的方式的改变而引起的。
JBossWS 3.3.0 对于基于端点的 servlet 引入了一个新的 Context Root 映射算法以允许它和 TCK6 无缝兼容。如果应用程序 EAR 归档包含具有相同名称的 WAR 和 JAR,JBossWS 可能会创建一个具有相同名字的 WAR 上下文和 web 上下文。Web 上下文和 WAR 上下文相冲突,这会导致部署错误。请用下列方法来解决部署问题:
  • 将 JAR 文件重命名为与 WAR 不同的名称,这样生成的 Web 和 WAR 上下文就是唯一的。
  • jboss-web.xml 文件里提供一个 <context-root> 元素。
  • jboss-webservices.xml 文件里提供一个 <context-root> 元素。
  • application.xml 文件为 WAR 自定义 <context-root> 元素。