gpt4 book ai didi

java - 通过本地接口(interface)从 war 访问 ejb in ear

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:04 28 4
gpt4 key购买 nike

是否可以使用本地接口(interface)从 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");

最佳答案

您应该使用容器依赖注入(inject)从 servlet 访问 ejb。问题很可能是您的 jndi 查找路径不正确。使用容器依赖注入(inject)让您无需了解 jndi 命名方案。

public class MyServlet extends HttpServlet {
@EJB(mappedName = "FirstDemoEJB/Local")
private FirstSessionBeanLocal firstSessionBeanLocal;
}

关于java - 通过本地接口(interface)从 war 访问 ejb in ear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671528/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com