求救啊!!struts+spring+hibernate初学者的一个问题
我在做小例子过程中老出现,
tomcat一启动就出现,如下错误
org.apache.catalina.core.ApplicationContext log
严重: action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory ' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
请问为什么,当我把spring中 <property name= "mappingResources "> ..... </property> 删除时候,启动tomcat就不会出错,但是我看了*.hbm.xml文件,绝对不会出错的,而且我就算用别人可以运行的原代码也不行,出是同样错误,请帮帮忙
User.hbm.xml文件
<?xml version= "1.0 "?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN "
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name= "org.tie.vo.User " table= "user " catalog= "tie ">
<id name= "id " type= "java.lang.Integer ">
<column name= "id " />
<generator class= "native " />
</id>
<property name= "username " type= "java.lang.String ">
<column name= "username " length= "10 " not-null= "true " />
</property>
<property name= "password " type= "java.lang.String ">
<column name= "password " length= "10 " not-null= "true " />
</property>
<property name= "email " type= "java.lang.String ">
<column name= "email " length= "50 " not-null= "true " />
</property>
</class>
</hibernate-mapping>
因为在我什么功能都没做,所以applicationContext.xml文件中没有什么内容
如下
<bean id= "dataSource "
class= "org.apache.commons.dbcp.BasicDataSource ">
<property name= "driverClassName "
value= "com.mysql.jdbc.Driver ">
</property>
<property name= "url "
value= "jdbc:mysql://localhost:3306/mydata ">
</property>
<property name= "username " value= "root "> </property>
<property name= "password " value= "root "> </property>
</bean>
<bean id= "sessionFactory "
class= "org.springframework.orm.hibernate3.LocalSessionFactoryBean ">
<property name= "dataSource ">
<ref bean= "dataSource " />
</property>
<property name= "hibernateProperties ">
<props>
<prop key= "hibernate.dialect ">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name= "mappingResources ">
<list>
<value> org/htc/entity/Userinfo.hbm.xml </value> </list>
</property> </bean>
</beans>
[解决办法]
你是不是没有导入相应的包.
而TOMCATE找不到方法呀.
[解决办法]
楼主,你的WEB应用中导入hibernate3.jar包了吗?
[解决办法]
你给出的是User.hbm.xml文件的内容
可是applicationContext.xml文件里为什么是Userinfo.hbm.xml?
[解决办法]
搂主和我今天遇到的问题一样,其实很简单是将\MyEclipse 5.0GA\eclipse\plugins\com.genuitec.eclipse.springframework_5.0.0\data\1.2\lib\dependencies\hibernate下的hibernate-annotations.jar这个包删除,刷新项目,再不行将整个项目复制出来并删除本身,再导入一次就OK了。
产生的主要是原因是spring下的这个包和hibernate的这个包冲突了,最好在刚开始时不导入Hibernate3 Libraries这个包,到配置Hibernate的时候再将该包导入就不会出现这个错误了!