WELD-001303 Нет активных контекстов для типа области javax.enterprise.context.SessionScoped

Я искал везде, но, кажется, я не могу найти лучший ответ для меня, чтобы решить эту ошибку, есть моя трассировка стека, может ли кто-нибудь сказать мне, что со мной происходит, я потратил две даты, чтобы найти эту ошибку.... :(

16:55:02,405 SEVERE [org.activiti.engine.impl.jobexecutor.TimerCatchIntermediateEventJobHandler] (Thread-16 (HornetQ-client-global-threads-982087879)) exception during timer execution: org.activiti.engine.ActivitiException: Exception while invoking TaskListener: WELD-001303 No active contexts for scope type javax.enterprise.context.SessionScoped
    at org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:529) [activiti-engine-5.11.jar:5.11]
    at ....
Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.SessionScoped
    at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:598) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
    at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
    at com.metro.wfm.shared.cdi.OverrideUserBean$Proxy$_$$_WeldClientProxy.hasBean(OverrideUserBean$Proxy$_$$_WeldClientProxy.java) [wfm-shared-0.0.2.jar:]
    ... 168 more

person Mike Nguyen    schedule 19.03.2013    source источник
comment
Невозможно ответить без подробностей. Каково ваше приложение (ухо? война?)   -  person artbristol    schedule 19.03.2013
comment
Мое приложение война.   -  person Mike Nguyen    schedule 20.03.2013


Ответы (3)


Контексты области сеанса активны только во время вызовов сервлета с помощью метода service() или при выполнении фильтра сервлета. Не уверен, как вы настроили задание Activiti, но, похоже, оно не находится в активном периоде контекста сеанса. Таким образом, если вы внедрите какие-либо bean-компоненты, требующие @SessionScoped, внедрение завершится ошибкой.

Решением будет удаление bean-инъекций, требующих @SessionScoped, или модификация bean-компонентов.

person Perception    schedule 19.03.2013
comment
Привет, я использую сварку и создаю entitymanager, который должен быть действительным для сеанса входа пользователя в систему, и внедряю entitymanager, и у меня есть фильтр использования для перехвата запросов, я получаю исключение: org.jboss.weld.context.ContextNotActiveException : WELD-001303: Нет активных контекстов для типа области javax.enterprise.context.SessionScoped Подскажите, пожалуйста, как сделать то же самое.Sentil - person user1503117; 12.10.2014

Я столкнулся с той же проблемой, и на основе ответа, опубликованного @Perception, кажется, что если вы используете @Singleton (javax.ejb.Singleton) вместе с аннотациями @Startup (javax.ejb.Startup) для некоторого класса инициализации, а также внедрение другого компонента, который является @SessionScoped или зависит от другого компонента, который является @SessionScoped, это вызовет эту ошибку WELD-001303.

person LeonardoHAlmeida    schedule 22.07.2015

Вы должны отделить логику сеанса внешнего интерфейса. Представьте, что у вас есть bean-компонент @SessionScoped для каждого зарегистрированного пользователя, он содержит объект Account.

После входа в систему в то же время сохраните объект учетной записи в компоненте сеанса и сохраните объект учетной записи в компоненте @ApplicationScoped, но в HashMap (идентификатор, учетная запись) в бэкэнд-логике каждый компонент Singleton может получить доступ и получить данные из компонента @Application Scoped. . Даже метод @Schedule.

person Armen Arzumanyan    schedule 19.11.2019