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