【问题标题】:Lookup using @EJB fails使用 @EJB 查找失败
【发布时间】:2018-01-17 15:02:17
【问题描述】:

我正在尝试使用注释类 @EJB 查找我的无状态 bean,但失败了。我使用 WildFly 10 作为 EE 容器。无状态 bean 接口如下所示:

@Local
public interface T1Service {
    String sayHi();
}

实现类:

@Stateless
public class T1ServiceImpl implements T1Service {
    @Override
    public String sayHi() {
        return "Hi!";
    }
}

在我的控制器中我想注入服务:

@EJB(lookup = "javaee/T1ServiceImpl")
private T1Service t1Service;

拨打电话:

t1Service.sayHi();

但它失败并出现 NullPointerException(t1Service 为空)。

我错过了什么?

注意,JNDI 绑定是:

    java:global/javaee/T1ServiceImpl!p1.T1Service
    java:app/javaee/T1ServiceImpl!p1.T1Service
    java:module/T1ServiceImpl!p1.T1Service
    java:jboss/exported/javaee/T1ServiceImpl!p1.T1Service
    java:global/javaee/T1ServiceImpl
    java:app/javaee/T1ServiceImpl
    java:module/T1ServiceImpl

【问题讨论】:

    标签: java ejb wildfly-10 stateless-session-bean


    【解决方案1】:

    您要注入T1Service 的控制器也是@Stateless Bean?如果它在同一个应用程序中运行,您可以省略属性lookup 的定义。

    如果您使用的是 Java EE 6/7/8,我还建议使用 CDI (@Inject)。 (更多信息请参见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多