gpt4 book ai didi

Java 8/JBoss 7 - 无法获取 bean 实例

转载 作者:太空宇宙 更新时间:2023-11-04 10:08:12 26 4
gpt4 key购买 nike

我正在将应用程序从 JBoss 5 升级到 7,但遇到了一个问题,即找不到已调用的 bean。

JBoss 实际正在寻找哪个 JNDI 绑定(bind)?

server.log(启动时)

WFLYEJB0473: JNDI bindings for session bean named 'ManagerLocal' in deployment unit 'subdeployment "Application-EJB.jar" of deployment "Application-EAR.ear"' are as follows:

java:global/Application-EAR/Application-EJB/ManagerLocal!com.application.data.manager.local.ManagerLocal
java:app/Application-EJB/ManagerLocal!com.application.data.manager.local.ManagerLocal
java:module/ManagerLocal!com.application.data.manager.local.ManagerLocal
java:global/Application-EAR/Application-EJB/ManagerLocal
java:app/Application-EJB/ManagerLocal
java:module/ManagerLocal

错误

javax.naming.NameNotFoundException: ManagerLocal -- service jboss.naming.context.java.ManagerLocal
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:235)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at com.common.util.LookupUtil.lookup(LookupUtil.java:91)
at com.common.util.LookupUtil.lookupLocalBean(LookupUtil.java:35)
at com.application.web.resource.RequestResource.getRequestManager(RequestResource.java:69)
at com.application.web.resource.RequestResource.searchRequests(RequestResource.java:413)
at com.application.trigger.handler.TriggerHandler.execute(TriggerHandler.java:43)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
2018-10-05 16:25:00,030 [ApplicationScheduler_Worker-3] ERROR org.quartz.core.JobRunShell - Job AppJobs.AppBuild threw an unhandled Exception:
java.lang.RuntimeException: Couldn't get an instance of manager bean

计算 JNDI 名称的代码

private static String computeJNDIName(boolean isLocal, String beanName, String appName) {
String name;

if (isLocal) {
name = appName + "/" + beanName + "/local";
} else {
name = appName + "/" + beanName + "/remote";
}

return name;
}

最佳答案

不是最好的答案,例如它没有说明原因或推理,但我必须将其添加到我的 WAR 中的 JSF 支持 bean 中,以便当我升级到 EAP7 时它可以访问 EJB jar 中的 bean

@EJB(lookup="java:app/NEDtoBrsMigratorEJB/CustomerDeleterBean")
CustomerDeleterBeanLocal customerDeleterBean;

EJB 的 JNDI 绑定(bind)是:

java:global/NEDtoBrsMigratorEAR/NEDtoBrsMigratorEJB/CustomerDeleterBean!net.myco.brsupdater.engine.CustomerDeleterBeanLocal
java:app/NEDtoBrsMigratorEJB/CustomerDeleterBean!net.myco.brsupdater.engine.CustomerDeleterBeanLocal java:module/CustomerDeleterBean!net.myco.brsupdater.engine.CustomerDeleterBeanLocal java:global/NEDtoBrsMigratorEAR/NEDtoBrsMigratorEJB/CustomerDeleterBean java:app/NEDtoBrsMigratorEJB/CustomerDeleterBean java:module/CustomerDeleterBean


请注意,该示例注释用于 VM JNDI 查找。

关于Java 8/JBoss 7 - 无法获取 bean 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52672990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com