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
文件中。
classes
目录中使用ejbs进行运行,但是仍然遇到相同的错误。system.properties
文件:openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbName}
因此,它可以在TomEE的另一个版本中使用,但是其他用户已经摆脱了先前版本中的此错误,并使他们的部署可以正常工作,或者看起来是从在线读取此错误的其他实例开始的。要使其在TomEE 1.7.4中运行需要什么?