getSession出现空指针异常

ActionContext.getContext().getSession();直接报空指针异常
查资料好像是说session必须在Action里使用,因为我是做串口监听,查到数据准备保存到session里,所以报错了(ActionContext.getContext().getSession().put("screwObj",screwObj);报错),screwObj对象有值。
有大神知道具体是什么原因吗?要怎样弄才能存到session?
我是想把获取到的数据显示到页面上,准备用轮询读取session的值,有其它方法传值也行啊!!!

现在回过来看来一下,发现这个问题还没答案,所以现在说一下我的解决办法.
因为我Session保存的是 串口对象 数据,原因是每次操作串口是需要打开串口对象的,而操作完了之后需要关闭对象,非常麻烦,所以想打开后,不关闭,把他保存在Session,等需要关闭时再取出来关闭,可测试时发现根本行不通,串口对象无法保存在Session,这一原因至今没找到.

但处理法法是,不保存串口对象,程序运行后一直读取数据,关闭程序时自然结束
Session保存的也不是串口对象,保存的是串口持续读取的数据,这个数据持续更新
相当于串口操作是底层,不会改变,中间是数据池,串口的数据持续更新数据池,当程序需要数据时直接在数据池取就行了

Action实现 servletRequestAware接口,然后从request对象获取session,然后传参传入到你的业务层,这样你就可以操作session了

你也可以直接用request返回到页面上使用啊

在页面获取request返回的数据,然后页面接着使用

ActionContext.getContext().getSession().put("screwObj",screwObj);
这里的空指针错误,有可能是ActionContext为空,有可能是ActionContext.getContext()为空,还有可能是ActionContext.getContext().getSession()为空,你定位了没,具体是哪个?

你的action配置文件和获取session的方法不对应,,没有看到你的action配置文件,所以不好说,看看这个人写的,,很详细
https://www.cnblogs.com/zhangzhifeng/p/4308331.html