一个既然简单又复杂的spring结合hibernate错误

Posted on 2009-12-23 20:21  火之光  阅读(1253)  评论(0编辑  收藏  举报

环境:eclipse3.3.0+myeclipse5.5.1GA(Spring2.0+struts1.1+Hibernate3.1)
出现的错误是:java.lang.NoSuchMethodError
具体代码:
15:20:54,093 ERROR ContextLoader:203 - Context initialization failed  
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'SessionFactory' defined in class path resource [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  
    at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)  
    at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)  
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)  
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)  
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)  
    at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)  
    at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:107)  
    at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)  
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)  
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:135)  
    at org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:55)  
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:56)  
    at org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:295)  
    at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:434)  
    at org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:109)  
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)  
    at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:226)  
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)  
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)  
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)  
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)  
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1202)  
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)  
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428)  
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)  
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)  
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)  
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)  
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)  
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)  
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)  
    at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:82)  
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)  
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)  
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)  
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)  
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)  
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)  
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)  
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)  
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)  
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)  
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)  
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)  
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)  
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)  
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)  
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)  
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)  
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)  
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)  
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)  
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)  
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
    at java.lang.reflect.Method.invoke(Method.java:585)  
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)  
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)  
15:20:54,109 ERROR [/esreport]:676 - StandardWrapper.Throwable  
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'SessionFactory' defined in class path resource [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  
    at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)  
    at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)  
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)  
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)  
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)  
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)  
    at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)  
       ................................................................................(省略)  

原因:Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突.
解决办法:删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.

Copyright © 2024 火之光
Powered by .NET 9.0 on Kubernetes