0
我在尝试将无状态EJB注入到应用程序客户机项目中时出现了一些问题。 App Client和EJB都在相同的EAR中。使用JNDI,我能够检索EJB的一个实例,但我不知道应该如何使用@EJB注释来实现它。我试过使用@EJB(name =“something”),@EJB(mappedName =“something”),但我得到的只是一个null。这里是我的代码:在WebLogic Server v10.3中注入EJB 3.0
@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");
我如何能做到这一点任何想法?
我已经试过这个,但是我得到的是一个空引用,包含Local和Remote注解。我也尝试过EJB(mappedName =“TimerEjbTestService”),但没有成功。 – carcaret
@carcaret在无状态注释中尝试不带参数mappedName;或者使用名称而不是mappedName。根据规范,mappedName不需要由应用程序服务器来管理:“应用程序服务器不需要支持任何特定形式或类型的映射名称,也不需要使用映射名称,映射名称是依赖于产品的,依赖“。 - http://docs.oracle.com/javaee/6/api/javax/ejb/Stateless.html – m3th0dman