2014-11-16 2 views
0

Я в настоящее время работает с Java EE (WildFly 8,0) У меня есть следующие классы:Вызов интерфейса EJB в пределах @Singleton

public interface A { 
    public void method(); 
} 

Это реализация

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

И Singleton, который имеет этот интерфейс как EJB

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

Всякий раз, когда я называю Singleton.a.method() w в другом EJB в моей бизнес-логике, он бросает InvokationException, говорящий: EJB Invocation не удалось.

Есть что-то не хватает здесь? Я уже пробовал объявить интерфейс @Local, но все тот же вопрос.

+0

Просто понял, что мой синглтон не инициализируется, я добавил @Startup и все тот же. – delpo

ответ

0

Вы пробовали обернуть вызов метода внутри метода в singleton?

@Singleton 
@LocalBean 
public class TestSingleton { 

    @Inject 
    public ITest a; 


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

Это работает для меня на Wildfly 8.1, в то время как TestSingleton.a.Method() терпит неудачу с NullPointer.

Смежные вопросы