java通过本地接口从war访问ear中的ejb
是否可以使用本地接口从war访问驻留在ear文件中的ejb
两者都部署在同一个应用服务器下
ejb:
@Stateless(name="FirstDemoEJB",mappedName = "FirstDemoEJB/Local")
public class FirstSessionBean implements FirstSessionBeanRemote, FirstSessionBeanLocal {
}
现在,在测试servlet(war)中:
InitialContext context = new InitialContext();
Object ob = context.lookup("java:comp/env/FirstDemoEJB/Local");
失败于:
javax.naming.NameNotFoundException: While trying to look up comp/env/FirstDemoEJB/Local in /app/webapp/FirstWebEJBTest/12292093.;
但是远程查找可以很好地工作:
Object ob = context.lookup("FirstDemoEJB/Local#org.weblogic.FirstSessionBeanRemote");
# 1 楼答案
您应该使用容器依赖注入从servlet访问ejb。问题很可能是jndi查找路径不正确。使用容器依赖项注入可以让您不必了解jndi命名方案