Jakarta ee JBoss EAP 7:启动时加载Servlet无法在init()方法中查找EJB

Jakarta ee JBoss EAP 7:启动时加载Servlet无法在init()方法中查找EJB,jakarta-ee,jboss,jboss-eap-7,Jakarta Ee,Jboss,Jboss Eap 7,我们正在将一个应用程序从JBoss EAP 6迁移到EAP 7。它是一个ear文件,包含各种war和jar文件。我们有多个servlet可以在服务器启动时启动。Servlet在web.xml中配置,属性为启动时加载>0。这在EAP 6中工作正常,但在我们将ear文件部署到EAP 7时会导致NOSCHEJBException。我假设在处理servlet的init()方法时EJB可用,因为相应的JNDI绑定已经记录到控制台。当我手动调用servlet时,一切正常,查找成功 你知道这里会出什么问题吗?

我们正在将一个应用程序从JBoss EAP 6迁移到EAP 7。它是一个ear文件,包含各种war和jar文件。我们有多个servlet可以在服务器启动时启动。Servlet在web.xml中配置,属性为启动时加载>0。这在EAP 6中工作正常,但在我们将ear文件部署到EAP 7时会导致NOSCHEJBException。我假设在处理servlet的init()方法时EJB可用,因为相应的JNDI绑定已经记录到控制台。当我手动调用servlet时,一切正常,查找成功

你知道这里会出什么问题吗?如何解决这个问题

创建JNDI绑定

ejb:myapp/CoreEJB/CacheConfigManager!com.mycompany.mycomponent.core.cache.config.manager.CacheConfigManager

ejb:myapp/CoreEJB/CacheConfigManager!com.mycompany.mycomponent.core.cache.config.manager.CacheConfigManagerLocal

servlet启动,查找失败

WildFly命名版本1.0.9.Final-redhat-1

JBoss EJB客户端版本4.0.12.Final-redhat-00001

javax.ejb.NoSuchEJBException:ejbclient00079:无法发现“myapp/core ejb/CacheConfigManager”的ejb无状态ejblocator请求的目标,视图为接口com.mycompany.mycomponent.core.cache.config.manager.CacheConfigManager,关联为None

Stacktrace

10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:592)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.protocol.remote.remotingejbclienterceptor.handleInvocationResult(remotingejbclienterceptor.java:56)处的错误[stderr](服务器服务线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)处的错误[stderr](服务器服务线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:115)处的错误[stderr](服务器服务线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.namingejbclienterceptor.handleInvocationResult(namingejbclienterceptor.java:79)处的错误[stderr](服务器服务线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:172)处的错误[stderr](服务器服务线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:938)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.ejbinactionhandler.invoke(ejbinactionhandler.java:177)处的错误[stderr](ServerService线程池--81) 10:44:10354 org.jboss.ejb.client.ejbinactionhandler.invoke(ejbinactionhandler.java:112)处的错误[stderr](ServerService线程池--81) 10:44:10354 com.sun.proxy.$Proxy116.getCacheConfigs上的错误[stderr](服务器服务线程池--81)(未知源) 10:44:10354 com.mycompany.mycomponent.core.cache.config.web.CacheConfigWeb.getCacheConfigs(CacheConfigWeb.java:75)处的错误[stderr](服务器服务线程池--81) 10:44:10354 com.mycompany.mycomponent.core.cache.config.web.CacheConfigWeb.getCacheConfig(CacheConfigWeb.java:63)上的错误[stderr](服务器服务线程池--81) 10:44:10354 com.mycompany.mycomponent.core.cache.mycomponentCache.getCacheConfig(mycomponentCache.java:241)上的错误[stderr](服务器服务线程池--81) 10:44:10355 com.mycompany.mycomponent.core.cache.mycomponentCache.setCacheType(mycomponentCache.java:292)上的错误[stderr](服务器服务线程池--81) 10:44:10355 com.mycompany.mycomponent.core.cache.mycomponentCache上的错误[stderr](服务器服务线程池--81)。(mycomponentCache.java:154) 10:44:10355 com.mycompany.mycomponent.core.cache.mycomponentCache上的错误[stderr](ServerService线程池--81)。(mycomponentCache.java:135) 10:44:10355 com.mycompany.mycomponent.logging上的错误[stderr](服务器服务线程池--81)