首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
在Jfinal中使用多线程 在run() 中调用 getModel 报空指针
枫叶vv
2018-03-31 12:31
项目:
JFinal
评论区
JFinal
2018-03-31 12:42
getModel 是使用了 http 请求过来时,web 创建的那个 HttpServletRequest 对象,这个对句在 Controller 的 request 属性中
而你开启的线程并不是 http 请求过来激发的 Controller,这时候 request 是不可用的
一定要先了解好程序执行的流程,线程在后台跑是与 controller 被 http 请求是完全无关的
回复
枫叶vv
2018-03-31 12:46
@JFinal
是request请求过来的呀
回复
枫叶vv
2018-03-31 12:47
@JFinal
我是从浏览器 请求的我这个方法
回复
枫叶vv
2018-03-31 13:15
@JFinal
多谢 Injector.injectModel(ReceiveMessagesDao.class,request,false); 我在构造方法中加上HttpServletRequest 启动线程 再把request传到这个类里来获取 dao 现在可以了。
回复
JFinal
2018-03-31 14:50
@枫叶vv
请求过来后你创建了独立的线程,这与请求过来的那个线程分道扬镳了,与前面说的情况几乎是一回事,在这两个线程的路上分别设置一个断点去感受一下
回复
JFinal
2018-03-31 14:53
@枫叶vv
你后面这个方案会有问题,先从 request 中获取参数,然后传给新线程
回复
发送
我要反馈
热门反馈
扫码入社
而你开启的线程并不是 http 请求过来激发的 Controller,这时候 request 是不可用的
一定要先了解好程序执行的流程,线程在后台跑是与 controller 被 http 请求是完全无关的