我正在从IBM WebSphere 7.5迁移到JBoss EAP 7.2。我有2个在EJB方面相互依赖的项目。
每个项目都是一个EAR,其中包含WAR和EJB(2.1版)。每个EJB jar文件都在另一个EAR中导出,因此可以在此处使用。因此,在EAR1中,有对某些EAR2 EJB的EJB调用,反之亦然。
问题是,这在IBM WebSphere中工作得很好,但是我正在努力使我的应用程序从JBoss EAP开始。在每个EAR中似乎都抱怨它无法找到其他EAR的EJB。以下是我在启动时遇到的错误:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.subunit."EAR1.ear"."EJB1.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EAR1.ear"."EJB1.jar".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of subdeployment "EJB1.jar" of deployment "EAR1.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:151)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1738)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1700)
at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1558)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1364)
at java.lang.Thread.run(Unknown Source)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0052: Failed to install component SomeEJBFacade
at org.jboss.as.ee.component.deployers.ComponentInstallProcessor.deploy(ComponentInstallProcessor.java:109)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:144)
... 8 more
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEJB0405: No EJB found with interface of type 'com.xxx.MyEJBFacadeHome' and name 'EJB2.jar#MyEJBFacade' for binding java:comp/env/ejb/MyEJBFacade
at org.jboss.as.ejb3.deployment.processors.EjbInjectionSource.getResourceValue(EjbInjectionSource.java:90)
at org.jboss.as.ee.component.deployers.ComponentInstallProcessor.processBindings(ComponentInstallProcessor.java:263)
at org.jboss.as.ee.component.deployers.ComponentInstallProcessor.deployComponent(ComponentInstallProcessor.java:205)
at org.jboss.as.ee.component.deployers.ComponentInstallProcessor.deploy(ComponentInstallProcessor.java:101)
... 9 more
我尝试使用全局查找,但是没有运气,同样的错误。
我的假设是否正确,即它正在尝试验证其他应用程序EJB?如果是这样,是否有解决方法?因为每个应用程序都依赖于另一个应用程序,并且每个应用程序都因相同的错误而失败,因此抱怨另一个应用程序中的EJB。