javax.naming.NameNotFoundException :Name [org. wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean] 未在此上下文中绑定(bind)。无法找到 [ejb:]

标签 java ejb jboss7.x jndi

我正在尝试运行 ejb Helloworld 程序和我的 JNDI[1],但出现以下错误[2],我正在运行 Jboss AS 7 Final 和 AS 输出列表[3]。有人指导我这个错误是什么吗?

[1]

Properties prop = new Properties();
prop.setProperty("java.naming.factory.url.pkgs","org.jboss.ejb.client.naming");
return new InitialContext(prop);

[2]

javax.naming.NameNotFoundException: Name [org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean] is not bound in this Context. Unable to find [ejb:].
at org.apache.naming.NamingContext.lookup(NamingContext.java:819)
at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
at org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContext.lookup(CarbonContextDataHolder.java:705)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at org.wso2.carbon.connector.EJBConnector.callEJB(EJBConnector.java:69)
at org.wso2.carbon.connector.EJBConnector.connect(EJBConnector.java:40)
at org.wso2.carbon.connector.core.AbstractConnector.mediate(AbstractConnector.java:32)
at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:97)
at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:129)
at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:78)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)
at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

[3]

java:global/org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean!org.wso2.carbon.custom.ejb.HelloIF
java:app/org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean!org.wso2.carbon.custom.ejb.HelloIF
java:module/HelloBean!org.wso2.carbon.custom.ejb.HelloIF
java:jboss/exported/org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean!org.wso2.carbon.custom.ejb.HelloIF
java:global/org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean
java:app/org.wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean
java:module/HelloBean

最佳答案

经过长时间的搜索,我解决了这个问题。这是因为 glassfish 中的类加载器问题。所以添加了一个方法来解决类加载问题然后它的工作正常。

 Thread currentThread = Thread.currentThread();
    ClassLoader oldClassLoader = currentThread.getContextClassLoader();
    try {
        //switching the classloader to prevent class loading glassfish classloading issues
        currentThread.setContextClassLoader(getClass().getClassLoader());
        //method to run
        callEJBStateful(messageContext);
    } catch (Exception e) {
        handleException("Error calling EJB Service from EJBConnector", e, messageContext);
    } finally {
        if (oldClassLoader != null) {
            //resetting the classloader
            currentThread.setContextClassLoader(oldClassLoader);
        }
    }

关于javax.naming.NameNotFoundException :Name [org. wso2.carbon.custom.ejb-1.0-SNAPSHOT/HelloBean] 未在此上下文中绑定(bind)。无法找到 [ejb:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409357/

相关文章:

java - 服务器不解码数据包

java - ejb3端点Web服务jboss 7抛出非法状态异常

postgresql - Spring MVC + Maven + JBoss : can't deploy (The application must supply JDBC connections)

java - 没有 @EJB 注入(inject)的 servlet 上的有状态 ejb 问题

jboss7.x - JBoss AS 7也兼容JavaEE5?

java - 查找插入位置

java - 如何使用 Struts 2 制作注册页面

java - 如果 synchronized 创建一个 happen-before 关系并防止重新排序,为什么 DCL 需要 volatile

jpa - CDI 中 @Transactional 有哪些限制?

mysql - EJB 未知的抽象模式,但它存在于数据库中