1.No setter found for property 'testDao' in class 'com.shiep.action.LoginAction',
这个其实相当简单,只不过第一次使用spring就会忘记在给被注入的对象设这setter方法,所谓的对象注入就是这个意思,不然spring无法注入成功,再者还要注入spring配置文件中的对象名和类中被要注入的对象名要一致,不然spring也找不到注入的对象。(刚开始搭建框架,所以只是测试一下,没有严格设计系统结构,之后开发的时候会设计好的,见谅)
2.严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
想必这个错误很多初学者都遇到过,基本上有这么几种原因:
第一,压根就没有这个类,所以才找不到,这时候只需要添加这个找不到的类即可(下载:点击打开链接);
第二:spring包只是引入工程中,而没有真正的导入到工程中,这个时候只需要把所有的springjar包copy到lib目录下即可;
第三:tomcat缓存的问题,先remove一下,再add到tomcat中,重启tomcat即可。
3.严重: Exception sending context initialized event to listener instance of classorg.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException:
Caused by:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'dao' defined in class path resource [applicationContext.xml]:
Error setting property values;
nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'sessionFactory' of bean class [com.shiep.dao.TestDAO]:
Bean property 'sessionFactory' is not writable or has an invalid setter method.
Does the parameter type of the setter match the return type of the getter?
当我看到最后一句“does...”的时候,有种似曾相识的感觉,去年在XX公司实习的时候经常碰到,可惜忘了当初是怎么解决的,不过好得有点印象,再加上可以google一下,马上解决:
哈哈,原来是dao类忘记extends HibernateDaoSupport了,spring与hibernate结合时,需要用到spring提供的HibernateDaoSupport类来实现Hibernate的持久层访问技术,否则的话,涉及到数据层dao的bean和setter方法都是invalid
4.严重: Exception starting filter struts2
Unable to load configuration. - bean - jar:file:/D:/profession/apache-tomcat-6.0.14/webapps/bankRisk/WEB-INF/lib/struts2-spring-plugin-2.1.8.jar!/
Caused by: Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/D:/profession/apache-tomcat-6.0.14/webapps/bankRisk/WEB-INF/lib/struts2-spring-plugin-2.1.8.jar!/struts-plugin.xml:29:132
这个咋一看还以为是struts2-spring-plugin-2.1.8.jar这儿出错了呢,结果后面的caused by才是重点,查看jar包,你会发现其他的struts2的jar包最低也是2.1.6,有些还是2.1.8,只有xwork这个jar包是2.1.2,因此很有可能是版本太低了,搜了一下高版本的2.1.6,连名字都变成了xwork-core,可想而知是有重大改进的,这样就不报错了