java - 在 WebLogic Server v10.3 中注入(inject) EJB 3.0

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

我在尝试将无状态 EJB 注入(inject)应用程序客户端项目时遇到一些问题。应用程序客户端和 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");

关于如何做到这一点有什么想法吗?

最佳答案

你可以这样做:

@EJB
private TimerEjbTestService myBean;

这样容器就注入(inject)了bean。

此外,由于它位于同一个耳朵中(因此由同一个 JVM 运行),接口(interface)的注释应该是 @Local 而不是 @Remote

关于java - 在 WebLogic Server v10.3 中注入(inject) EJB 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12496611/

相关文章:

java - 如何动态更改 weblogic.xml 中的值?

java - 无法存储不可序列化对象的引用

java - 删除后销毁所有实例

java - 工具提示在 struts 2 的 jfree 图表中不起作用

java - 使用 Lambda 表达式将列表转换为 map 不起作用

java - 使用 EJB 2.0 和 JPA (Toplink) 问题存储和刷新对象

java - 远程ejb方法参数隔离

java - Weblogic JMS 队列服务器间通信

java - Weblogic Websocket端点不工作

java - SQL 中的 LIKE 工作不正常?