关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 14214|回复: 5

springMVC配置quartz的问题

[复制链接]
发表于 2013-8-14 21:50:42 | 显示全部楼层 |阅读模式
遇到一个头疼的问题,根据网上资料配置了个quatarz定时任务,当触发 save 方法保存数据时,  getSession()方法执行失败,发现是
        public static HttpServletRequest getRequest() {
                logger.info("SpringMvc下获取request……");
                HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
                                .getRequestAttributes()).getRequest();
                return request;
        }

中RequestContextHolder.getRequestAttributes()为null


这个问题咋解决?
 楼主| 发表于 2013-8-14 22:08:09 | 显示全部楼层
Quartz线程不是一个HTTP请求,不包含request对象,在Quartz的Job类中无法取得ServletContext,
所以无法取得ApplicationContext,Job类中的Spring注解都是无效的。
发表于 2013-8-15 09:15:36 | 显示全部楼层
嗯 定时任务不是请求线程 没有请求上下文的
 楼主| 发表于 2013-8-15 10:12:19 | 显示全部楼层
GIN 发表于 2013-8-15 09:15
嗯 定时任务不是请求线程 没有请求上下文的

因此就无法使用Hibernate自带的 session.save()方法来保存数据了

发表于 2013-8-15 10:45:24 | 显示全部楼层
fyp1984 发表于 2013-8-15 10:12
因此就无法使用Hibernate自带的 session.save()方法来保存数据了

嗯 这个因为开了openSessionInview 所以session的创建是在请求开始时 如果要用Hibernate的保存 可能需要自己用hibernate的factory再open一个session出来
 楼主| 发表于 2013-8-19 16:01:48 | 显示全部楼层
GIN 发表于 2013-8-15 10:45
嗯 这个因为开了openSessionInview 所以session的创建是在请求开始时 如果要用Hibernate的保存 可能需要 ...

为了解决这个问题,觉得还是用jdbc更简单一些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表