当前位置: 首页 > 知识库问答 >
问题:

@sessionScoped抛出异常。(生命周期异常-"用户会话用无效范围注释")

习海
2023-03-14

到目前为止,我在我的Web应用程序中使用了JSF实现(但已弃用)的ManagedBeans。

在我把它改成CDI豆之后。(javax.enterprise.context.*)

import javax.enterprise.context.SessionScoped;

@SessionScoped
@Named
public class UserSession implements Serializable, HttpSessionListener
{
//.....
}

我有以下例外:

ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException:

JAVAlang.IllegalArgumentException:类xbu。gbcp。豆一场UserSession在org上被注释为无效范围。阿帕奇。卡塔琳娜。果心标准语境。从com开始(StandardContext.java:5864)。太阳企业网状物网络模块。从org开始(WebModule.java:691)。阿帕奇。卡塔琳娜。果心集装箱基地。addChildInternal(ContainerBase.java:1041)位于org。阿帕奇。卡塔琳娜。果心集装箱基地。addChild(ContainerBase.java:1024)位于org。阿帕奇。卡塔琳娜。果心标准主持人。addChild(StandardHost.java:747)位于com。太阳企业网状物网络容器。loadWebModule(WebContainer.java:2278)位于com。太阳企业网状物网络容器。loadWebModule(WebContainer.java:1924)位于com。太阳企业网状物WebApplication。在org上启动(WebApplication.java:139)。玻璃鱼。内部的数据引擎。在org上启动(EngineRef.java:122)。玻璃鱼。内部的数据模块信息。从org开始(ModuleInfo.java:291)。玻璃鱼。内部的数据应用信息。在com上启动(ApplicationInfo.java:352)。太阳企业v3。服务器应用程序生命周期。在com上部署(ApplicationLifecycle.java:497)。太阳企业v3。服务器应用程序生命周期。在org上部署(ApplicationLifecycle.java:219)。玻璃鱼。部署。管理部署指挥部。在com上执行(DeployCommand.java:491)。太阳企业v3。管理CommandRunneImpl 2美元1美元。在com上运行(CommandRunnerImpl.java:527)。太阳企业v3。管理CommandRunneImpl 2美元1美元。在java上运行(CommandRunnerImpl.java:523)。安全访问控制器。javax上的doPrivileged(本机方法)。安全啊。主题doAs(Subject.java:360)在com上。太阳企业v3。管理CommandRunneImpl 2美元。在com上执行(CommandRunnerImpl.java:522)。太阳企业v3。管理指挥官。com上的doCommand(CommandRunnerImpl.java:546)。太阳企业v3。管理指挥官。doCommand(CommandRunnerImpl.java:1423)位于com。太阳企业v3。管理指挥官。在com上访问$1500(CommandRunnerImpl.java:108)。太阳企业v3。管理CommandRunneImpl$ExecutionContext。在com上执行(CommandRunnerImpl.java:1762)。太阳企业v3。管理CommandRunneImpl$ExecutionContext。在com上执行(CommandRunnerImpl.java:1674)。太阳企业v3。管理管理员适配器。doCommand(AdminAdapter.java:534)位于com。太阳企业v3。管理管理员适配器。org上的missingResource(AdminAdapter.java:224)。玻璃鱼。灰熊http。服务器StaticHttpHandler。com上的服务(StaticHttpHandler.java:297)。太阳企业v3。服务。impl。集装箱司机。org上的服务(ContainerMapper.java:246)。玻璃鱼。灰熊http。服务器HttpHandler。org上的runService(HttpHandler.java:191)。玻璃鱼。灰熊http。服务器HttpHandler。doHandle(HttpHandler.java:168)位于org。玻璃鱼。灰熊http。服务器HttpServerFilter。handleRead(HttpServerFilter.java:189)位于org。玻璃鱼。灰熊过滤链。9美元。在org上执行(executorsolver.java:119)。玻璃鱼。灰熊过滤链。DefaultFilterChain。org上的executeFilter(DefaultFilterChain.java:288)。玻璃鱼。灰熊过滤链。DefaultFilterChain。org上的executeChainPart(DefaultFilterChain.java:206)。玻璃鱼。灰熊过滤链。DefaultFilterChain。在org上执行(DefaultFilterChain.java:136)。玻璃鱼。灰熊过滤链。DefaultFilterChain。在org上处理(DefaultFilterChain.java:114)。玻璃鱼。灰熊处理器执行器。在org上执行(ProcessorExecutor.java:77)。玻璃鱼。灰熊尼奥。运输交通运输。fireIOEvent(TCPNIOTransport.java:838)位于org。玻璃鱼。灰熊策略。抽象策略。fireIOEvent(AbstractIOStrategy.java:113)位于org。玻璃鱼。灰熊策略。工人线程策略。org上的run0(WorkerThreadIOStrategy.java:115)。玻璃鱼。灰熊策略。工人线程策略。访问org上的$100(WorkerThreadIOStrategy.java:55)。玻璃鱼。灰熊策略。WorkerThreadIOStrategy$WorkerThreadRunnable。在org上运行(WorkerThreadIOStrategy.java:135)。玻璃鱼。灰熊线程池。抽象线程池$Worker。doWork(AbstractThreadPool.java:564)位于org。玻璃鱼。灰熊线程池。抽象线程池$Worker。在java上运行(AbstractThreadPool.java:544)。朗。丝线。运行(Thread.java:744)

共有1个答案

别烨熠
2023-03-14

bean实现了HttpSessionListener,并且不允许为监听器、servlet或过滤器声明CDI作用域。您需要重构并将会话侦听器相关的逻辑提取到一个单独的类中。

 类似资料:
  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 无法在Tomcat中删除此错误。错误如下:- 请告诉我如何解决Tomcat中的生命周期异常?

  • 问题内容: 我有以下代码: 我的索引超出范围错误,我不知道为什么。我声明了大小为10的尺寸。为什么会出现此错误? 问题答案: 您声明了一个,其初始容量为10个元素,但没有向此列表中添加元素,即列表为空。将替换现有元素,但是由于列表中没有元素,因此将引发异常。您必须使用方法在之前添加元素。 表示列表内部维护的数组的开头大小为10。在列表中添加更多元素时,此内部数组的大小可能会更改。

  • 到目前为止,我使用JSF实现的(但不推荐使用的)ManagedBeans作为我的WebApplication。 在我把它改成CDI-beans之后。(javax.enterprise.context.*)

  • 在你可以捕获异常之前,一些代码必须抛出一个异常。任何代码都可能会抛出异常:您的代码,来自其他人编写的包(例如Java平台附带的包)或Java运行时环境的代码。无论是什么引发的异常,它总是通过 throw 语句抛出。 您可能已经注意到,Java平台提供了许多异常类。所有类都是Throwable类的后代,并且都允许程序区分在程序执行期间可能发生的各种类型的异常。 您还可以创建自己的异常类来表示在您编写

  • 1. 前言 ​ 上一节,我们多学习了一种初始化 Spring 容器的方式,那么不管是何种初始化容器的方式,目的都是对容器中的 bean 实例做管理的。 本节我们就学习 Spring 的容器如何管理对象的实例的。主要在于两个方向: 对象的生命周期 对象的作用范围 2. 对象的生命周期 2.1. 生命周期的概念 ​ 生命周期,通俗的理解就是从出生到死亡的过程,那么对于对象而言,就是实例在 Spring