5

我面临与在 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 和 Maven 构建。有没有办法添加应该包含在第二个应用程序中的依赖项(我现在打算这样做),以便第二个应用程序能够知道/使用已经存在的包?

感谢您的任何支持,

问候

4

3 回答 3

11

从常见问题中引用

重复部署IdException:

如果您尝试在两个不同的 Web 应用程序中部署相同的 ejb,那么您将收到以下异常(在 conf/openejb.log 中):

org.apache.openejb.DuplicateDeploymentIdException:应用程序无法部署,因为它包含正在使用的部署 ID:

要解决此问题,请执行以下操作:

  1. 在 conf 目录下创建一个名为 system.properties 的文件
  2. 将以下内容添加到 system.properties 文件并保存

    openejb.deploymentId.format={moduleId}/{ejbName}

JIRA来看,这个修复应该适用于 OpenEJB 3.1

于 2010-11-24T11:21:41.350 回答
2

在将 liquibase 添加到部署在同一个容器中的多个 Web 应用程序之后,我遇到了 apache-tomee-plume-7.0.4 的相同问题。

这个版本带有它自己的 system.properties 文件,我所要做的就是取消注释定义上面显示的属性的行。

# openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbName}

取消注释这条线并重建后,我发现问题消失了,我没有遇到其他残留错误。

于 2018-09-05T15:49:21.280 回答
0

我不知道 EAR 文件的概念是什么,但 Tomcat 不是一个完整的 Java EE 应用服务器。它是一个 servlet/JSP 引擎;它无法处理 EAR。如果您正在部署一个 EAR,或者您的 WAR 出于某种原因在其中包含一个 EAR,则您必须将 OpenEJB 之类的东西添加到您的 Tomcat 部署中。

于 2010-11-24T10:38:43.583 回答