1

我正在尝试Session在 Struts 2 中使用:

private Map<String, Object> session = ActionContext.getContext().getSession();

但我收到了这个错误:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke 
"com.opensymphony.xwork2.ActionContext.getSession()" because the return value of 
"com.opensymphony.xwork2.ActionContext.getContext()" is null

几个小时前它运行良好,我的程序运行良好。过了一段时间,我的电脑变黑了,然后重新启动,重新启动后这个错误开始出现。我没有改变我的代码。一切都一样,但面临这个问题。

我尝试使用SessionMapStruts,但仍然收到相同的错误消息。我尝试过更改struts-core库,也尝试了谷歌的一些解决方案,但仍然没有解决这个问题。请为此提供解决方案。

4

1 回答 1

0

ActionContext是动作调用的容器占位符,更详细的解释在这里

动作上下文可能有很多原因null。您正在启动另一个线程,或修改现有线程,或者它尚未创建。

要获得一个SessionMap有另一种方法。让你的动作类来实现SessionAware,并确保你已经为动作配置了一个默认的拦截器堆栈。之后,会话映射应该被注入到动作实例中。更多关于它的信息

于 2021-12-02T21:09:07.523 回答