Deployment 在Weblogic 10.3中调用EJB时发生NameNotFoundException

Deployment 在Weblogic 10.3中调用EJB时发生NameNotFoundException,deployment,weblogic,ejb,workmanagers,Deployment,Weblogic,Ejb,Workmanagers,首先,我想强调的是,我已经阅读了StackOverflow()中的其他帖子,其中有类似的问题,但不幸的是,我没有用这些帖子上的答案解决这个问题。我不打算回复一个已经回答过的问题,所以如果是这样的话,我向你道歉,并感谢你指出解决方案的发布位置 我的问题是: 我正在尝试在WebLogic10.3.2中部署EJB。其目的是使用特定的WorkManager执行在此组件范围内产生的工作 考虑到这一点,我使用基于web的界面(环境>工作管理器>新建),在我的WebLogic配置上设置了一个工作管理器(名为R

首先,我想强调的是,我已经阅读了StackOverflow()中的其他帖子,其中有类似的问题,但不幸的是,我没有用这些帖子上的答案解决这个问题。我不打算回复一个已经回答过的问题,所以如果是这样的话,我向你道歉,并感谢你指出解决方案的发布位置

我的问题是:

我正在尝试在WebLogic10.3.2中部署EJB。其目的是使用特定的
WorkManager
执行在此组件范围内产生的工作

考虑到这一点,我使用基于web的界面(环境>工作管理器>新建),在我的WebLogic配置上设置了一个
工作管理器
(名为
ResponseTimeReqClass-0
)。以下是一个屏幕截图:

下面是我的会话bean定义和描述符:

orquestratoremote.java

package orquestrator;

import javax.ejb.Remote;

@Remote
public interface OrquestratorRemote {

    public void initOrquestrator();

}
package orquestrator;

import javax.ejb.Stateless;

import com.siemens.ecustoms.orchestration.eCustomsOrchestrator;

@Stateless(name = "OrquestratorBean", mappedName = "OrquestratorBean") 
public class OrquestratorBean implements OrquestratorRemote {

    public void initOrquestrator(){
        eCustomsOrchestrator orquestrator = new eCustomsOrchestrator();
        orquestrator.run();
    }

}
OrquestratorBean.java

package orquestrator;

import javax.ejb.Remote;

@Remote
public interface OrquestratorRemote {

    public void initOrquestrator();

}
package orquestrator;

import javax.ejb.Stateless;

import com.siemens.ecustoms.orchestration.eCustomsOrchestrator;

@Stateless(name = "OrquestratorBean", mappedName = "OrquestratorBean") 
public class OrquestratorBean implements OrquestratorRemote {

    public void initOrquestrator(){
        eCustomsOrchestrator orquestrator = new eCustomsOrchestrator();
        orquestrator.run();
    }

}
META-INF\ejb jar.xml

<?xml version='1.0' encoding='UTF-8'?>
<ejb-jar xmlns='http://java.sun.com/xml/ns/javaee'
         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
         metadata-complete='true'>

<enterprise-beans>
    <session>
        <ejb-name>OrquestradorEJB</ejb-name>
        <mapped-name>OrquestratorBean</mapped-name>
        <business-remote>orquestrator.OrquestratorRemote</business-remote>
        <ejb-class>orquestrator.OrquestratorBean</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
    </session>
</enterprise-beans>

<assembly-descriptor></assembly-descriptor>

</ejb-jar>
为此:

Object obj = ic.lookup("OrquestratorBean#orquestrator.OrquestratorBean");
但结果是相同的运行时异常

谁能帮我查出我做错了什么?我在调试时遇到了麻烦,因为我不知道如何检查可能导致此问题的原因


提前感谢您的耐心和帮助。

您在ejb-jar.xml“Orquestrator”中的映射名称可能会覆盖Bean的mappedName=OrquestratorBean设置。
您尝试过“Orquestrator”的ic.lookup吗?

您在ejb-jar.xml中的映射名称“Orquestrator”可能会覆盖Bean的mappedName=OrquestratorBean设置。
您是否尝试过“Orquestrator”的ic.lookup?

您的EJB将绑定到以下JNDI名称下(当部署为EJB模块时):


请注意,我将您的代码(没有weblogic ejb jar.xml)部署为ejb模块,而不是共享库。

您的ejb绑定在以下JNDI名称下(部署为ejb模块时):


请注意,我将您的代码(没有weblogic ejb jar.xml)部署为ejb模块,而不是共享库。

在控制台>服务器>JNDI树视图中是否显示“OrquestratorBean”?@josek如果您指的是“环境>服务器>管理服务器>常规>查看JNDI树”,我没有注意到任何“OrquestratorBean”进入那里。这是正确的位置吗?控制台>服务器>JNDI树视图中是否显示“OrquestratorBean”?@josek如果您指的是“环境>服务器>管理服务器>常规>查看JNDI树”,我没有注意到任何“OrquestratorBean”条目。这是正确的地方吗?@Shreeni谢谢你的回答。我将描述符更改为“OrquestratorBean”(以符合注释中使用的命名),但它没有改变任何东西:我得到了与以前相同的运行时异常。我用这个改动更新了原来的帖子。@Shreeni谢谢你的回复。我将描述符更改为“OrquestratorBean”(以符合注释中使用的命名),但它没有改变任何东西:我得到了与以前相同的运行时异常。我用这个变化更新了原来的帖子。
Object obj = ic.lookup("OrquestratorBean#orquestrator.OrquestratorBean");
Object obj = ic.lookup("OrquestratorBean#orquestrator.OrquestratorRemote");