【问题标题】:Session event listener threw exception when creating a new Session会话事件监听器在创建新会话时抛出异常
【发布时间】:2015-07-22 09:01:56
【问题描述】:

我正在尝试在我的一个控制器中创建一个新会话。 一切正常,直到我在 web.xml 中添加了一个监听器 如您所见,以下是响应。我尝试谷歌搜索,但一无所获。实际上,如果不存在,我正在尝试创建一个新会话。请帮忙!

    <listener>
         <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>

我的Java代码sn-p如下:

    HttpSession currentSession = null;
    currentSession = httpRequest.getSession(false);
    if(currentSession != null)
    {
        logger.info("No Session object found in context!");
        currentSession.setAttribute("NAME", seller.getSellerName());
        currentSession.setAttribute("EMAIL", seller.getEmail());
        currentSession.setAttribute("TOKEN", seller.getSsoToken());
    }
    else
    {
        logger.info("Creating a new Session Object!");
        currentSession = httpRequest.getSession(true);
        currentSession.setAttribute("NAME", seller.getSellerName());
        currentSession.setAttribute("EMAIL", seller.getEmail());
        currentSession.setAttribute("TOKEN", seller.getSsoToken());
    }

日志是:

    Jul 22, 2015 2:17:54 PM org.apache.catalina.session.StandardSession tellNew
    SEVERE: Session event listener threw exception
    java.lang.NullPointerException
at org.springframework.security.web.session.HttpSessionEventPublisher.sessionCreated(HttpSessionEventPublisher.java:69)
at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:423)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:395)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:376)
at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:655)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2933)
at org.apache.catalina.connector.Request.getSession(Request.java:2318)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:899)
at com.snapdeal.cpms.web.controller.SSOLoginController.validateTokenSso(SSOLoginController.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

【问题讨论】:

  • 你有想过这个问题吗?
  • 最后,你做了什么?

标签: spring-mvc session listener web.xml setattribute


【解决方案1】:

我遇到了同样的问题。 我刚换了罐子。它开始工作了。
使用
spring-security 4.0.3 用于 spring 框架 4.2.x.
spring-security 4.0.2 for spring framework 4.1.x.

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 2018-03-05
    • 2018-11-28
    • 1970-01-01
    • 2017-03-11
    • 2013-01-13
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    相关资源
    最近更新 更多