iteye_19656
iteye_19656
2008-11-11 10:28
浏览 169
已采纳

怎样在spring的quartz.JobDetail中获取sevletContext实例?

怎样在org.springframework.scheduling.quartz.JobDetailBean任务调度中获取sevletContext实例。最好能在配置文件中注入。
[b]问题补充:[/b]
怎样在org.springframework.scheduling.quartz.JobDetailBean任务调度中获取sevletContext实例。最好能在配置文件中注入。

回复jones:我是在tomcat启动完成后调用的任务,selectcontext应该已经被实例化了吧。

[b]问题补充:[/b]
怎样在org.springframework.scheduling.quartz.JobDetailBean任务调度中获取sevletContext实例。最好能在配置文件中注入。
[b]问题补充:[/b]
怎样在org.springframework.scheduling.quartz.JobDetailBean任务调度中获取sevletContext实例。最好能在配置文件中注入。

回复jones:我是在tomcat启动完成后调用的任务,selectcontext应该已经被实例化了吧。

十分感谢回复的朋友!
回复jones:http://cse-mjmcl.cse.bris.ac.uk/blog/2007/06.html解决了,谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • iteye_521
    iteye_521 2008-11-11 11:29
    已采纳

    注意,你的JobDetailBean是在spring上下文启动的时候实例化的,这个时候获取不到ServletContext,但是可以提供一个方法,让JobDetailBean在真正执行的时候再去获取就可以了,看看这篇文章,完全符合你的情况,
    [url]http://cse-mjmcl.cse.bris.ac.uk/blog/2007/06.html[/url]

    点赞 评论
  • iteye_521
    iteye_521 2008-11-11 10:37

    这么做:
    [color=red]applicationContext.xml[/color]






    [color=red][/color]


    点赞 评论
  • iteye_521
    iteye_521 2008-11-11 10:45

    上面的回答有问题,你这个需求基本不能实现原因如下:
    ServletContext对象是web容器启动完成后才可以使用的,而Spring上下文是在web容器启动过程中初始化的,你的JobDetailBean也是在spring上下文启动过程中实例化的,这个时候[color=red]因为web容器还没有完全启动,ServletContext对象是不可用的,[/color]所以无论你用什么方法也无法获取到,因为ServletContext根本还没有完全实例化完成。
    如果你只是需要通过ServletContext获取某些信息,不要考虑把ServletContext注入进去,想想能不能只传递某些参数呢

    点赞 评论
  • zhang26chao
    zhang26chao 2008-11-11 12:43

    sevletContext只能在servlet里获得,要想在你的bean里得到,除非自己作为参数传进去

    点赞 评论
  • iteye_521
    iteye_521 2008-11-11 17:56

    等着接分呢,嘿嘿

    点赞 评论

相关推荐