Java 从WildFly调用远程EJB到Glassfish

Java 从WildFly调用远程EJB到Glassfish,java,spring-boot,glassfish,ejb,wildfly-11,Java,Spring Boot,Glassfish,Ejb,Wildfly 11,我有下一个设置: 部署在glassfish 3.2.1应用服务器中的EJB 试图将Springboot应用程序部署为Wildfly 11应用程序服务器上的WAR 在我的springboot应用程序中,我为glassfish客户端(gf客户端)添加了maven依赖项: org.glassfish.main.appclient gf客户端 5.1.0 当我尝试在wildfly中部署springboot应用程序时,服务器会在日志中写入以下消息: [org.jboss.as.ejb3.deplo

我有下一个设置:

  • 部署在glassfish 3.2.1应用服务器中的EJB

  • 试图将Springboot应用程序部署为Wildfly 11应用程序服务器上的WAR

在我的springboot应用程序中,我为glassfish客户端(gf客户端)添加了maven依赖项:


org.glassfish.main.appclient
gf客户端
5.1.0
当我尝试在wildfly中部署springboot应用程序时,服务器会在日志中写入以下消息:

[org.jboss.as.ejb3.deployment](MSC服务线程1-7)WFLYEJB0473:部署单元“deployment”中名为“TimerBean”的会话bean的JNDI绑定如下所示:

java:global/gestion-garantias-fcd/TimerBean!org.glassfish.ejb.persistent.timer.TimerLocal java:app/gestion-garantias-fcd/TimerBean!org.glassfish.ejb.persistent.timer.TimerLocal java:module/TimerBean!org.glassfish.ejb.persistent.timer.TimerLocal java:global/gestion-garantias-fcd/TimerBean java:app/gestion-garantias-fcd/TimerBean java:module/TimerBean

10:31:38790错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC000001:无法启动服务jboss.deployment.unit.“gestion garantias fcd.war”。安装:org.jboss.msc.service.StartException in service jboss.deployment.unit.“gestion garantias fcd.war”。安装:WFLYSRV0153:无法处理部署的阶段安装“加兰提亚斯战斗指挥” 位于org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172) 位于org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032) 位于org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 运行(Thread.java:748)

原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:WFLYEE0041:组件类org.glassfish.ejb.persistent.timer.TimerBean的组件TimerBean有错误: WFLYJPA0033:在部署“gestion garantias fcd.war”中找不到名为_EJB _Timer _应用程序的持久化单元 位于org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:157) 位于org.jboss.as.ee.component.ClassDescriptionOnTraversal.run(classDescriptionOnTraversal.java:54) 位于org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:186) 位于org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:143) 位于org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165) …还有5个

10:31:38797错误[org.jboss.as.controller.management operation](控制器引导线程)WFLYCTL0013:操作(“部署”)失败-地址:([((“部署”=>“gestion garantias fcd.war”))-失败描述:{ “WFLYCTL0080:失败的服务”=>{“jboss.deployment.unit.\“gestion garantias fcd.war\”。安装“=>”WFLYSRV0153:无法处理部署的阶段安装\“gestion garantias fcd.war\” 原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:WFLYEE0041:组件类org.glassfish.ejb.persistent.timer.TimerBean的组件TimerBean有错误: WFLYJPA0033:在部署\“gestion garantias fcd.war\”中找不到名为_EJB\u_Timer\u_App的持久化单元, “WFLYCTL0412:未安装的必需服务:”=>[“jboss.deployment.unit.\“gestion garantias fcd.war\”.beanmanager”], “WFLYCTL0180:缺少/不可用依赖项的服务”=>[ “jboss.deployment.unit.\“gestion garantias fcd.war\”.weld.WeldClassIntrosector缺少[jboss.deployment.unit.\“gestion garantias fcd.war\”.beanmanager], “jboss.deployment.unit.\“gestion garantias fcd.war\”.batch.artifact.factory缺少[jboss.deployment.unit.\“gestion garantias fcd.war\”.beanmanager]。” ] }

我大胆地指出了我认为是错误的主要原因

基本上,发生此错误是因为gf客户端中存在一个名为ejb timer service app的内部应用程序,并且它包含一个持久性配置(persistence.xml)。该配置指定了一个名为\uuuuuuejb\uuuuuuu timer\uuuuu app的持久性单元,该持久性单元引用了通常在所有glassfish安装中创建的数据源(jdbc/uuu TimerPool)

我不知道该应用程序(ejb定时器服务应用程序)在gf客户端的何处,但我尝试排除gf客户端依赖项。确切地说,我尝试排除下一个依赖项:

<groupId>org.glassfish.main.ejb</groupId>
<artifactId>ejb</artifactId>
org.glassfish.main.ejb
ejb
但错误仍然存在

然后,我选择在gf客户端中使用一些单独的被占用的依赖项。依赖项列表如下:

        <dependency>
            <groupId>org.glassfish.main.deployment</groupId>
            <artifactId>deployment-client</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.common</groupId>
            <artifactId>glassfish-naming</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
           <groupId>org.reactivestreams</groupId>
           <artifactId>reactive-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.ejb</groupId>
            <artifactId>ejb-client</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.orb</groupId>
            <artifactId>orb-connector</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.ejb</groupId>
            <artifactId>ejb-container</artifactId>
            <version>5.0</version>
        </dependency>

org.glassfish.main.deployment
部署客户端
5.1.0
org.glassfish.main.common
玻璃鱼命名
5.1.0
org.reactivestreams
反应流
org.glassfish.main.ejb
ejb客户端
5.1.0
org.glassfish.main.orb
球形连接器
5.1.0
org.glassfish.main.ejb
ejb容器
5
第一个错误(找不到持久性单元…)已取消。但现在,发现另一个错误:

原因:javax.naming.NamingException:串行查找“java:global/gyf_electronicdocument\u guaranteRecediro\u ear/gyf_electronicdocument\u guaranteRecedioro\u business/GuaranteeCOBean!com.gyf.electronicdocument.guaranteRecedioro.to.guaranteRecomote”失败
        <dependency>
            <groupId>org.glassfish.main.deployment</groupId>
            <artifactId>deployment-client</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.common</groupId>
            <artifactId>glassfish-naming</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
           <groupId>org.reactivestreams</groupId>
           <artifactId>reactive-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.ejb</groupId>
            <artifactId>ejb-client</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.orb</groupId>
            <artifactId>orb-connector</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.main.ejb</groupId>
            <artifactId>ejb-container</artifactId>
            <version>5.0</version>
        </dependency>