首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java8/JBoss7 -无法获取bean的实例

Java8/JBoss7 -无法获取bean的实例
EN

Stack Overflow用户
提问于 2018-10-06 04:37:19
回答 1查看 81关注 0票数 1

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

JBoss实际上在寻找哪种JNDI绑定?

server.log (启动时)

代码语言:javascript
复制
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

错误

代码语言:javascript
复制
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名称的代码

代码语言:javascript
复制
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;
    }
EN

回答 1

Stack Overflow用户

发布于 2018-10-06 05:39:27

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

代码语言:javascript
复制
@EJB(lookup="java:app/NEDtoBrsMigratorEJB/CustomerDeleterBean")
CustomerDeleterBeanLocal customerDeleterBean;

EJB的JNDI绑定是:

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查找中形成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52672990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档