【发布时间】:2014-12-27 21:14:48
【问题描述】:
是否可以使用本地接口从战争中访问驻留在 ear 文件中的 ejb?
两者都部署在同一个应用服务器下。
ejb:
@Stateless(name="FirstDemoEJB",mappedName = "FirstDemoEJB/Local")
public class FirstSessionBean implements FirstSessionBeanRemote, FirstSessionBeanLocal {
}
现在,在测试 servlet(战争)中:
InitialContext context = new InitialContext();
Object ob = context.lookup("java:comp/env/FirstDemoEJB/Local");
失败:
javax.naming.NameNotFoundException:尝试查找时 comp/env/FirstDemoEJB/Local in /app/webapp/FirstWebEJBTest/12292093.;
但远程查找工作正常:
Object ob = context.lookup("FirstDemoEJB/Local#org.weblogic.FirstSessionBeanRemote");
【问题讨论】:
-
在 WebLogic 中(据我所知),您可以在那里使用
RemoteInterface。容器检查它是否真的是LocalInterface,并尽可能将其用作一个。规范不允许反向操作。 -
我知道 JBoss AS7 在这方面遇到了一些麻烦。只是提及它以表明这可能是他们的问题。
标签: java ejb-3.0 weblogic12c