java - 当前线程中不存在具有范围类型注释 @RequestScoped 的 WebBeans 上下文

标签 java scope apache-tomee openwebbeans

我在 TomEE 服务器上使用 OpenJPA。

我构建了我的 .war,将其部署在服务器上,但是当我使用我的应用程序打开页面时,我收到此执行:

javax.servlet.ServletException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
  javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)
  filters.NoCacheFilter.doFilter(NoCacheFilter.java:42)
  org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
  com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)


javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
  org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:351)
  org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualCreationalContext(NormalScopedBeanInterceptorHandler.java:169)
  org.apache.webbeans.web.intercept.RequestScopedBeanInterceptorHandler.getContextualInstance(RequestScopedBeanInterceptorHandler.java:79)
  org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
  org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108)
  org.apache.webbeans.conversation.ConversationImpl_$$_javassist_0.isTransient(ConversationImpl_$$_javassist_0.java)
  org.apache.webbeans.jsf.WebBeansPhaseListener.beforePhase(WebBeansPhaseListener.java:106)
  org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:77)
  org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:158)
  org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
  javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
  filters.NoCacheFilter.doFilter(NoCacheFilter.java:42)
  org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
  com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)

最佳答案

好的,我找到问题所在了。

首先,我必须阅读启动 TomEE 服务器的日志。我发现我的 EJB 类之一有问题。我用事务管理器注入(inject)资源:

   @Resource
   private UserTransaction userTransaction;

但我忘记通过以下方式注释我的服务 EJB:

@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class TaskService {
  ...
}

关于java - 当前线程中不存在具有范围类型注释 @RequestScoped 的 WebBeans 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25685895/

相关文章:

tomcat - 为什么 Tomee 会删除我对 conf 文件夹中 web.xml 的所有更改?

java - Primefaces 数据表选定的行无法使用 viewscope

javascript - 将 Javascript 对象传递给 HTML iframe(作为对象)

ruby-on-rails - Rails 4 - 如果条件不适用

apache-tomee - 如何在 TomEE 中定义 MySQL 数据源?

ejb - Tomee+Microprofile UnsatisfiedResolutionException

Java 泛型 - 覆盖返回 set<T> 的函数

java - 如何从 HashiCorp Nomad 运行的 java 应用程序获取堆转储?

java - 究竟什么是集成测试 - 与单元相比

javascript - “节点”未定义。我们如何在应用程序级别定义?