Как создать SessionContext в Wildfly

У меня есть этот класс для создания некоторых ресурсов Java EE. Мой проект - EAR с EJB и CDI.

public class Resources {

    @Dependent
    @Produces
    @Resource(mappedName = "java:comp/EJBContext")
    protected SessionContext sessionContext;
}

И это прекрасно работает в JBoss AS 7. Но когда я использую Wildfly (бета-версия, скомпилированная сегодня из github), я получаю это исключение.

Caused by: org.jboss.weld.exceptions.NullInstanceException: WELD-000044: Unable to obtain instance from null

В чем дело? Как я могу произвести SessionContext с использованием Wildfly? В Wildfly есть другой путь, или это ошибка (так как Wildfly еще не готовы к производству)?

Обновление Используя последнюю версию Wildfly, скомпилированную из Github, этот код работает отлично. Я думаю, что это была ожидаемая ошибка, так как Wildfly - бета. Спасибо вам, ребята.

1 ответ

Решение

SessionContext - это контекст, связанный с текущим сессионным компонентом. в вашем случае класс Resources не является каким-либо видом EJB-компонента, поэтому SessionContext не внедряется.

попробуйте добавить @Stateless в класс Resources. В любом случае кажется странным, что вы хотите создать продюсер для SessionContext, который действителен только для текущего компонента. посмотрите javadoc о том, где SC действителен и что это имеет отношение к http://docs.oracle.com/javaee/7/api/javax/ejb/SessionContext.html

Другие вопросы по тегам