是否可以从使用本地界面的战争中访问驻留在耳内文件中的ejb? 两者都部署在同一个app服务器下
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:尝试查找时 / app / webapp / FirstWebEJBTest / 12292093中的comp / env / FirstDemoEJB / Local。;
但远程查找工作正常:
Object ob = context.lookup("FirstDemoEJB/Local#org.weblogic.FirstSessionBeanRemote");
答案 0 :(得分:1)
您应该使用容器依赖项注入来从servlet访问ejb。最有可能的问题是你的jndi查找路径不正确。使用容器依赖注入可以减轻您对jndi命名方案的了解。
public class MyServlet extends HttpServlet {
@EJB(mappedName = "FirstDemoEJB/Local")
private FirstSessionBeanLocal firstSessionBeanLocal;
}