Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf 2 JSF和Tomcat:getSession和getRequestedSessionId返回null_Jsf 2_Tomcat7_Httpsession_Jsessionid - Fatal编程技术网

Jsf 2 JSF和Tomcat:getSession和getRequestedSessionId返回null

Jsf 2 JSF和Tomcat:getSession和getRequestedSessionId返回null,jsf-2,tomcat7,httpsession,jsessionid,Jsf 2,Tomcat7,Httpsession,Jsessionid,我有一个web应用程序,它有一个阶段侦听器。当阶段侦听器运行时,它会对会话映射执行一些操作。随机(通常不是第一个请求,但在快速发出请求时更频繁)我从SessionMap.put收到一个空指针异常。经过一番挖掘,当SessionMap.put获取会话时,它似乎返回了一个空指针(即使它调用getSession(true))。因此,我进行了一些调试,发现getSession和getRequestedSessionId在调用时都返回null。但是,如果检查请求(request.getCookies())

我有一个web应用程序,它有一个阶段侦听器。当阶段侦听器运行时,它会对会话映射执行一些操作。随机(通常不是第一个请求,但在快速发出请求时更频繁)我从SessionMap.put收到一个空指针异常。经过一番挖掘,当SessionMap.put获取会话时,它似乎返回了一个空指针(即使它调用getSession(true))。因此,我进行了一些调试,发现getSession和getRequestedSessionId在调用时都返回null。但是,如果检查请求(request.getCookies())中的cookie,则JSSessionID cookie将包含在请求中,并且具有正确的会话。对于会话和请求的会话id有时恢复正常,有时恢复为空,似乎没有什么道理。这里唯一相关的另一条信息是,JSF页面与一些较旧的JSP/servlet位于同一个应用程序中


我在网上查看过,其他人说将cookie路径设置为“/”解决了他们的类似问题,但在这里似乎无法解决问题。

若要排除其中一个,请尝试其他服务器make/version。对不起,我不太清楚您在这里的意思。尝试不同版本的Tomcat?还是莫哈拉的另一个版本?或者只是另一个运行tomcat 7的服务器?tomcat是一个服务器。尝试不同的Tomcat版本。或者不同的服务器品牌(例如Glassfish、JBoss AS、Jetty等)。这个问题在Tomcat 7的其他版本中仍然存在,但在Tomcat 6中似乎没有出现。两个Tomcat的配置相同。唯一的区别是,出于某种原因,当Tomcat 7启动时,它会为类GetoptDemo抛出一个类not found异常,尽管从我在网上找到的关于这个类的一点信息来看,它似乎不应该相关。听起来像是一个脏的类路径。确保您从未将任意JAR添加到JRE的
/lib
/lib/ext
或服务器自己的
/lib
文件夹中。大多数初学者这样做是为了避免
javac
编译错误,但实际上这是错误的方法。