我遇到与在Tomcat 5服务器上部署两个应用程序相关的问题。 部署和运行服务器时,我收到一条错误消息,这也会阻止第二个应用程序正常运行。
Unable to deploy collapsed ear in war /my-app: Exception: Application cannot be deployed as it contains deployment-ids which are in use:
之后会列出所有重复的ID。第二个应用程序是较小的应用程序,它被添加到管理所有实体的现有应用程序中。该项目由Eclipse nad Maven构建。有没有办法添加应该包含在第二个应用程序中的依赖项(我现在打算做什么)所以第二个应用程序将能够知道/使用已经存在的包?
感谢adnvace提供任何支持,
此致
答案 0 :(得分:9)
DuplicateDeploymentIdException:
如果您尝试部署相同的ejb 那么两个不同的Web应用程序 你会得到以下例外 (在conf / openejb.log中):
org.apache.openejb.DuplicateDeploymentIdException: 无法部署应用程序 包含在的部署ID 使用:
要解决此问题,请执行以下操作:
- 在conf下创建一个名为system.properties的文件 目录
- 醇>
将以下内容添加到system.properties文件并保存
openejb.deploymentId.format = {的moduleId} / {ejbName}
从the JIRA开始,此修复程序应适用于OpenEJB 3.1
答案 1 :(得分:0)
我不知道EAR文件的概念是什么,但Tomcat不是完整的Java EE应用服务器。它是一个servlet / JSP引擎;它没有办法处理EAR。如果您正在部署EAR,或者您的WAR由于某种原因在其中包含EAR,则您必须向Tomcat部署中添加类似OpenEJB的内容。
答案 2 :(得分:0)
在将liquibase添加到部署在同一容器中的多个Web应用程序之后,我遇到了apache-tomee-plume-7.0.4的相同问题。
此版本随附其自己的system.properties文件,我要做的就是取消注释定义上面显示的属性的行。
# openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbName}
取消注释此行并进行重建后,我发现问题消失了,并且没有其他残留错误。