【问题标题】:Calling an EJB interface within a @Singleton在 @Singleton 中调用 EJB 接口
【发布时间】:2014-11-16 00:33:18
【问题描述】:

我目前正在使用 Java EE (WildFly 8.0) 我有以下课程:

public interface A { 
    public void method(); 
}

这是实现

@Stateless
public class  ABean implements A { 
    public void method() { //do stuff} 
}

还有一个将这个接口作为 EJB 的单例

@Singleton
@LocalBean
public class Singleton  { 
    @EJB
    public A a; 
}

每当我在业务逻辑中的另一个 EJB 中调用 Singleton.a.method() 时,它都会抛出一个 InvokationException 说:EJB 调用失败。

这里有什么遗漏吗?我已经尝试过声明接口@Local 但仍然是同样的问题。

【问题讨论】:

  • 刚刚意识到我的单例不会被初始化,我添加了@Startup 仍然一样。

标签: jakarta-ee ejb-3.1


【解决方案1】:

您是否尝试过将方法调用封装在单例中的方法中?

@Singleton
@LocalBean
public class TestSingleton  { 

    @Inject
    public ITest a; 


    public void Run() {
        a.Method();
    }
}

这适用于 Wildfly 8.1,而 TestSingleton.a.Method() 因 NullPointer 而失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多