在WebLogic Server v10.3中注入EJB 3.0

时间:2012-09-19 14:14:07

标签: java ejb weblogic ejb-3.0 weblogic-10.x

我在尝试将无状态EJB注入到应用程序客户端项目时遇到了一些问题。 App Client和EJB都在同一个EAR中。使用JNDI,我能够检索EJB的实例,但我不知道如何使用@EJB注释来完成它。我尝试过使用@EJB(name =“something”),@ EJB(mappedName =“something”),但我得到的只是null。这是我的代码:

@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");

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

@EJB
private TimerEjbTestService myBean;

通过这种方式,容器会注入bean。

此外,由于它位于同一个耳中(因此由相同的JVM运行),因此界面的注释应为@Local而不是@Remote