我在尝试将无状态 EJB 注入应用程序客户端项目时遇到了一些问题。App Client 和 EJB 都在同一个 EAR 中。使用 JNDI,我能够检索 EJB 的一个实例,但我不确定我应该如何使用 @EJB 注释来完成它。我试过使用@EJB(name="something")、@EJB(mappedName="something"),但我得到的只是一个空值。这是我的代码:
@Remote
public interface TimerEjbTestService {
public void testMethod();
}
@Stateless(mappedName="TimerEjbTestService")
public class TimerEjbTestBean implements TimerEjbTestService{
public void testMethod() {
System.out.println("Inside EJB.");
}
}
使用 JNDI,我可以按如下方式获取实例:
Context ctx = new InitialContext();
TimerEjbTestService timerEjbTestService = (TimerEjbTestService) ctx.lookup("TimerEjbTestService#myejb.timerejbtestservice.services.TimerEjbTestService");
关于如何做到这一点的任何想法?