applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.
Posted 会飞的鱼9999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.相关的知识,希望对你有一定的参考价值。
我用的jeesite框架,在使用定时任务时,出现一些问题,,
1.在windows上项目可以在tomcat下,运行
2.在linux下项目在tomcatgh下,却出现问题:
15-Dec-2017 15:15:37.552 INFO [www.toolcoo.com-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
2017-12-15 15:15:44,224 ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'tasksBean\': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.chseeker.modules.information.service.ToolInformationService com.thinkgem.jeesite.modules.sys.init.TasksBean.informationService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'toolInformationService\': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.chseeker.modules.use.service.ToolUserInfoService com.chseeker.modules.information.service.ToolInformationService.toolUserInfoService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'toolUserInfoService\': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.thinkgem.jeesite.common.persistence.CrudDao com.thinkgem.jeesite.common.service.CrudService.dao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'toolUserInfoDao\': FactoryBean threw exception on object creation; nested exception is …………
Caused by: java.lang.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.
at org.apache.commons.lang3.Validate.validState(Validate.java:826)
at com.thinkgem.jeesite.common.utils.SpringContextHolder.assertContextInjected(SpringContextHolder.java:105)
at com.thinkgem.jeesite.common.utils.SpringContextHolder.getBean(SpringContextHolder.java:56)
at com.chseeker.modules.use.entity.ToolUserInfo.<clinit>(ToolUserInfo.java:26)
... 75 more
这个是因为,,applicaitonContext没有初始化,查看
发现,是通过注释加载的,,我就想,是不是,我的定时任务比springContextHolder加载的早,造成的呢?
于是,,我在spring-context.xml中写入<bean class="com.thinkgem.jeesite.common.utils.SpringContextHolder" lazy-init="false"/>
,最后发布到linux中,,启动,问题解决
最后的最后,,为什么windows下可以,linux下不可以呢???
以上是关于applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.的主要内容,如果未能解决你的问题,请参考以下文章
将属性文件或 xml 文件中的属性值注入 PreAuthorize(...) java 注释(未解决)
将 $mdMenu 注入作用域。无法读取未定义的属性 open()
Spring 如何在 Struts 动作中注入未在 applicationContext.xml 中定义的属性