NutzCN Logo
问答 非WEB环境获取dao有时候可以,有时候失败!
发布于 2947天前 作者 qq_88dd2c69 1883 次浏览 复制 上一个帖子 下一个帖子
标签:

我是在一个定时器的线程中去取ioc中已有的dao,如下:

			NutMvcContext ctx;
			try {
				ctx = Mvcs.ctx();
				if (ctx == null) {
					System.out.println("无法获取nutz运行环境!");
					return;
				}
				Ioc ioc = ctx.getDefaultIoc();
				dao = ioc.get(DaoImpl.class, "dao");
			} catch (Exception e) {
				e.printStackTrace();
			}

失败:

java.lang.NullPointerException
	at org.nutz.mvc.Mvcs.getServletContext(Mvcs.java:379)
	at org.nutz.mvc.Mvcs.ctx(Mvcs.java:293)
	at com.jinyatu.module.MessageAndTaskTimerTask.run(MessageAndTaskTimerTask.java:37)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)
Exception in thread "Timer-4" java.lang.NullPointerException
	at com.jinyatu.module.MessageAndTaskTimerTask.reloadTaskList(MessageAndTaskTimerTask.java:90)
	at com.jinyatu.module.MessageAndTaskTimerTask.run(MessageAndTaskTimerTask.java:48)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

nutz版本:nutz-1.r.54.r2

2 回复

这样写依然在mvc环境呢,还不如在mainSetup的init内把dao设置到静态变量,免得每次取

确实如此,感谢兽总

添加回复
请先登陆
回到顶部