最近研究孔浩老师的cms项目,将项目导入后,最后使用jetty启动时,发现报IIndexService无法注入的问题,详细错误信息如下:
报错语句:<dwr:annotation-scan base-package="org.konghao.cms.dwr" scanDataTransferObject="true"/>
错误信息:Error occured processing XML 'org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class;'.
2、使用jetty启动时,报:
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.konghao.cms.controller.BackupController.setIndexService(org.konghao.cms.service.IIndexService); nested exception is java.lang.IllegalArgumentException
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:601)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
... 55 more
经过与孔老师沟通,确认问题根源是IndexService这个没有注入进去,经过一番思索与尝试,最后终于找到了解决的方案:
1、在cms-parent的pom.xml中,将spring的版本由3.2.2.RELEASE改成3.1.3.RELEASE,完成后如下:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.1.3.RELEASE</spring.version>
</properties>
2、使用clean jetty:run启动即可
当成功启动后,第一个错误也自动得到了解决。