今天整理一下在写ssh整合的过程中,遇到的错误。
1.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
出现这种情况可能就是:
一是没有加asm包,其中有antlr-2.7.6 asm asm-attrs三个包
还有一种可能,是你的Spring中的cglib-nodep-2.x.x包与Hibernate中的cglib-2.2包相冲突,删除cglib-2.2就行了
2.Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V。
java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
在网上查了一下,都是jar包版本冲突(Spring3 HIbernate3.6 Struts2.1.8结合时配置 AOP事物时, 出现错误)
解决办法:
出现<init>(Z)V 将cglib.jar 由2.1版本 改为 2.2
出现<init>(I)V 将cglib.jar 由2.2版本 改为 2.1.
3.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'Userinfo' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type '$Proxy5 implementing org.springframework.beans.factory.
问题原因:
一、项目中是没有cglib.jar包
二、applicationContext.xml没有以下配置:<aop:aspectj-autoproxy proxy-target-class="true"/>
两者缺一不可
4.getHibernateTemplate().find()出现java.lang.NullPointerException异常
原因:再写action和spring service的时候,引用的service对象和dao不用手动初始化,初始化工作交给容器。否则就会出现空指针异常
5. log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
解决方法 : 在WEB-INF/classes/路径下加上文件 log4j.properties 其参考内容如下# Set root logger level to error
log4j.rootLogger=INFO, Console, File
###### Console appender definition #######
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{3}] %m%n
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=spring.log
log4j.appender.File.Append=false
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
在web.xml中添加log4的监听
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/config/log4j.properties</param-value>
</context-param>
······
<!-- 定义LOG4J监听器 -->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
不行的话再加一个
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>