Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @SessionScoped引发异常。(LifecycleException-“UserSession使用无效范围”进行注释)_Java_Jsf_Jakarta Ee_Cdi - Fatal编程技术网

Java @SessionScoped引发异常。(LifecycleException-“UserSession使用无效范围”进行注释)

Java @SessionScoped引发异常。(LifecycleException-“UserSession使用无效范围”进行注释),java,jsf,jakarta-ee,cdi,Java,Jsf,Jakarta Ee,Cdi,到目前为止,我在我的Web应用程序中使用了JSF实现(但已弃用)的ManagedBeans 在我把它改成CDIBeans之后。(javax.enterprise.context.*) 我有以下例外情况: java.lang.IllegalArgumentException:类 xbu.gbcp.bean.session.UserSession被注释为无效范围 位于org.apache.catalina.core.StandardContext.start(StandardContext.java

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

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

我有以下例外情况:

java.lang.IllegalArgumentException:类 xbu.gbcp.bean.session.UserSession被注释为无效范围 位于org.apache.catalina.core.StandardContext.start(StandardContext.java:5864) 位于com.sun.enterprise.web.WebModule.start(WebModule.java:691) 位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041) 位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024) 位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747) 在com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2278)上 在com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1924)上 位于com.sun.enterprise.web.WebApplication.start(WebApplication.java:139) 位于org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 位于org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291) 位于org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352) 位于com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:497) 位于com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 位于org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523) 位于java.security.AccessController.doPrivileged(本机方法) 位于javax.security.auth.Subject.doAs(Subject.java:360) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:546) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:1423) com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674) 位于com.sun.enterprise.v3.admin.AdminAdapter.docomand(adminapter.java:534) 位于com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(adminapter.java:224) 位于org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297) 位于com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246) 位于org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 位于org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 位于org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 位于org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 位于org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)上 在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 位于org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 位于org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 位于org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 位于org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 运行(Thread.java:744)


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

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: