OpenEJB пытается дважды связать удаленный EJB
У меня странная проблема с 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)
Внутренняя ссылка BusinessRemoteReference из EJB отличается от объекта первого раза, поэтому она пытается развернуть его во второй раз. Но я проверил путь к классам, и EJB не включен дважды. Если я выполняю аналогичную процедуру, но из обычного Java-класса, она также не работает.
Есть какие-нибудь подсказки?