Как создать 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