2

我有一个关于 OpenEJB 和集成测试的奇怪问题。我正在使用 Open EJB 4.5.1、JUnit 4.10 和 Maven3 和 surefire 插件 2.13 我从我的测试中启动 OpenEJB:

InitialContext ic = new InitialContext();

它(显然)工作正常并正确部署 EJB ( CentrosBeanFacade ),但之后它尝试再次绑定它,这导致服务器失败。

这些是有趣的日志部分:

第一次 --> [OK] :

DEBUG - bound ejb at name:       openejb/Deployment/CentrosBeanFacade/com.csc.health.xhis.arqtest.api.CentrosLogica, ref: org.apache.openejb.core.ivm.naming.BusinessRemoteReference@6506fe2b
DEBUG - bound ejb at name: openejb/Deployment/CentrosBeanFacade/com.csc.health.xhis.arqtest.api.CentrosLogica!Remote, ref: org.apache.openejb.core.ivm.naming.BusinessRemoteReference@6506fe2b
INFO - Jndi(name=CentrosBeanFacade) --> Ejb(deployment-id=CentrosBeanFacade)
INFO - Jndi(name=global/classpath.ear/test-ejb/CentrosBeanFacade!com.csc.health.xhis.arqtest.api.CentrosLogica) --> Ejb(deployment-id=CentrosBeanFacade)
INFO - Jndi(name=global/classpath.ear/test-ejb/CentrosBeanFacade) --> Ejb(deployment-id=CentrosBeanFacade)

但随后它会尝试第二次部署它。

DEBUG - failed to bind ejb at name: openejb/Deployment/CentrosBeanFacade/com.csc.health.xhis.arqtest.api.CentrosLogica, ref: org.apache.openejb.core.ivm.naming.BusinessRemoteReference@32f00d9a
ERROR - Jndi name could not be bound; it may be taken by another ejb.  Jndi(name=openejb/Deployment/CentrosBeanFacade/com.csc.health.xhis.arqtest.api.CentrosLogica!Remote)

来自 EJB 的内部 BusinessRemoteReference 与第一次是不同的对象,因此它试图第二次部署它。但是我检查了类路径并且两次没有包含 EJB。如果我从一个普通的 Java 类执行类似的过程,它也会失败。

有什么线索吗?

4

0 回答 0