gpt4 book ai didi

java - EJB 3.1 - 在 EJB 中使用 @EJB - 可能吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:13:49 26 4
gpt4 key购买 nike

是否可以在另一个 EJB 中使用 @EJB?我现在正在尝试这样做,但我的 EJB 最终为空。我将在示例中概述我的问题。

@Stateless
@LocalBean
@Local(LoginServiceLocal.class)
public class LoginService implements LoginServiceLocal {

public void createLogin(String email, String password) { ... }
}

@Stateless
@LocalBean
@Local(AccountServiceLocal.class)
public class AccountService implements AccountServiceLocal {

@PersistenceContext(unitName = "accounts")
private EntityManager accountEntityManager;

@EJB
private LoginServiceLocal loginService;

public void createAccount(Account account, String email, String password) {
accountEntityManager.persist(account);
loginService.createLogin(email, password);
}
}

这种事情应该是可能的吗?我还应该提到我正在使用嵌入式容器(通过 EJBContainer),并且我正在使用 JNDI 查找 AccountService,但是当我尝试在 AccountService 中调用 loginService.createLogin 时,loginService 为空(未被初始化@EJB)。

我想做的事情可行吗?

谢谢。

最佳答案

是的,这是可能的。

@LocalBean 注释使 EJB 能够公开无接口(interface)客户端 View ,这样您就不需要定义本地接口(interface)。

另一方面,@Local 注释定义了 bean 的本地客户端接口(interface)。

请选择以上配置选项之一,而不是两者。

如果您选择使用@LocalBean 注释,请删除@Local 注释,删除implements 关键字并使用@EJB 注释注入(inject)bean 类名。

如果您选择使用@Local 注释,请删除@Local 和@LocalBean 注释并使用接口(interface)名称通过@EJB 注释注入(inject)bean。

关于java - EJB 3.1 - 在 EJB 中使用 @EJB - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262323/

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