错误:无法部署应用程序,因为它包含正在使用的部署ID

时间:2018-10-12 03:45:59

标签: tomee

TomEE尝试部署我的耳朵时,会产生错误“无法部署应用程序,因为它包含正在使用的部署ID”

我实际上没有该ID的多个实例。只有1。

我已将问题简化为一个基本的耳朵文件,该文件仅包含application.xml和带有1个无状态会话bean的ejbs.jar。就是这样。

耳朵结构:

META-INF
    MANIFEST.MF
    application.xml
ejbs.jar

ejbs.jar结构:

META-INF
    MANIFEST.MF
test
    SessionTest.class

用于生成SessionTest.class的SessionTest.java的代码:

package test;

import javax.ejb.Stateless;

@Stateless
public class SessionTest
{
    public void testF()
    {
        System.out.println("testF()");
    }
}

application.xml的内容:

<application>
    <display-name>TestEar</display-name>
    <module>
        <ejb>ejbs.jar</ejb>
    </module>
</application>

就是这样。因此,我什至没有任何尝试使用 SessionTest的方法,它就在那里。

为了确保我不会在某个地方意外地安装它的其他版本,或者可能是TomEE在某个地方缓存了它,我删除了整个TomEE基本目录并重新安装,然后重新将其放回到webapps目录中。 / p>

该错误表明已部署的相关ID为:

testear/ejbs/SessionTest

环境

TomEE 1.7.4

Java 1.8.0_73

Windows 10

上面指定的耳文件位于TomEE的webapps目录中。除了下面提到的system.properties更改之外,对TomEE配置的唯一其他更改是将MySQL数据源添加到TomEE的conf/tomee.xml文件中。

我尝试过的

  • 我已经将整个内容剥离到上面显示的内容上。
  • 当我的耳朵里仍然有war文件时,我尝试在war的classes目录中使用ejbs进行运行,但是仍然遇到相同的错误。
  • 我尝试了this similar question的答案中建议的解决方案,但仍然出现错误。我现在有一个带有以下条目的system.properties文件:openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbName}
  • 我尝试使用TomEE + 7.0,并且我的整个程序包(不仅仅是此处的精简版)都可以正确部署。不幸的是,我不能使用TomEE + 7.0。生产环境具有TomEE Web配置文件1.7.4,而我对此没有直接控制权。我将尝试看看它是否可以升级,但是在这种环境下(这是轻描淡写的),这可不是一件容易的事。

因此,它可以在TomEE的另一个版本中使用,但是其他用户已经摆脱了先前版本中的此错误,并使他们的部署可以正常工作,或者看起来是从在线读取此错误的其他实例开始的。要使其在TomEE 1.7.4中运行需要什么?

0 个答案:

没有答案