for (Cookie cookie : ServletActionContext.getRequest().getCookies()) {
上面的行给了我
java.lang.NullPointerException
at interceptors.RemembermeInterceptor.intercept(RemembermeInterceptor.java:35)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
它曾经在 struts2.1.8 中工作正常,我刚刚将 POM.xml 中的 struts2 版本升级到 2.3.12,但它停止工作并出现上述错误。
最佳答案
此行中有两件事可能导致 NullPointerException:
for (Cookie cookie : ServletActionContext.getRequest().getCookies()) {
-
如果在 HTTP 请求之外调用
ServletActionContext.getRequest()
将返回 null。由于您是从拦截器调用该行,因此这似乎不太可能。
如果没有随请求发送 cookie,ServletActionContext.getRequest().getCookies()
将返回 null。尝试迭代空集合或数组将产生 NPE。
尝试按如下方式更改代码:
Cookie[] cookies = ServletActionContext.getRequest().getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
// do something
}
}
关于java - struts2.3.12中servletactioncontext为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345876/