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)
しかし、2 回目の展開を試みます。
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 は 1 回目とは異なるオブジェクトであるため、2 回目のデプロイを試みています。しかし、クラスパスを確認したところ、EJB は 2 回含まれていません。同様の手順を単純な Java クラスから実行すると、失敗します。
手がかりはありますか?