spring启动报的一些错(继续补充中…)

spring启动报的一些错(持续补充中……)

今天做Spring quartz定时任务时,出现一些问题,特此记录一下,以免下次再次出现,供大家和自己参考:

1、org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.test.db.BeanFactoryPost] 

for bean with name 'xx.xxxxx.xxx' defined in ServletContext resource

原因是caused by java.lang.ClassNotFoundException(类找不到,未编译)。但发现类的路径并未写错,后来通过各种找bug,才发现是因为类没有编译,WEB-INF/下根本没有classes文件。

解决办法:工程->build path->default output path->更改为:工程名/WebRoot/WEB-INF/classes(原来是:工程名/build/classes),spring不会去build/classes路径下找。更改完之后,clean 工程即可编译。

 

2、如何注入另外一个工程的class?(Class<?> jobClass属性)

<property name="jobClass"  value="org.test.job.TestJob2"/></bean>

 或:

xmlns:p="http://www.springframework.org/schema/p"

........

p:jobClass="org.test.job.TestJob2"

 

 而发现,通过事先定义一个org.test.job.TestJob2的bean,再ref是会报异常的:

即:

<property name="jobClass" ><ref bean="job2" /></property></bean>

 

Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [org.test.job.TestJob2] to required type [java.lang.Class] for property 'jobClass': PropertyEditor [org.springframework.beans.propertyeditors.ClassEditor] returned inappropriate value of type [org.test.job.TestJob2]