2012-09-20 15 views
5

Erhalte den folgenden Fehler beim Versuch, eine Spring-Mvc-Anwendung mit Hibernate in Eclipse auszuführen.Klasse konnte nicht initialisiert werden net.sf.cglib.proxy.Enhancer

java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer 
org.springframework.aop.framework.Cglib2AopProxy.createEnhancer(Cglib2AopProxy.java:229) 
org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:171) 
org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:112) 
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:476) 
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:362) 
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1461) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:876) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:735) 
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:551) 
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:876) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:735) 
org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795) 
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723) 
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:609) 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469) 
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) 
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) 
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) 
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) 
javax.servlet.GenericServlet.init(GenericServlet.java:160) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
java.lang.Thread.run(Thread.java:679) 

Ich habe platziert cglib-nodep-2.2.3 .jar in meinen Web-inf/lib Ordner, aber ich bin weiterhin den gleichen Fehler zu erhalten. Nicht sicher, warum die Klasse im Glas ist. Ich bekomme die gleiche Fehlermeldung, ob das Glas da ist oder nicht.

Antwort

0

Sie vermissen Glas. Ich denke, cglib-nodep-2.2.3.jar enthält nicht die Klasse net.sf.cglib.proxy.Enhancer Sie brauchen. Sie sollten versuchen, http://www.jarfinder.com/index.php/java/search/~net.sf.cglib.proxy.Enhancer~ zu finden, welche JAR-Datei diese Klasse enthalten und eine dieser JAR-Datei zum Erstellen Pfad hinzufügen.

Wenn Sie Ihre Klasse ist, in dem Glas enthalten finden, nachdem Sie Ihre lib zu web-inf/lib Ordner hinzufügen,

  • Rechts auf Ihr Projekt klicken
  • Klicken Sie auf Build Path> Configure-Erstellungspfad. ..
  • Wählen Sie Bibliotheken Tag und klicken Sie auf JARs hinzufügen ...
  • Zeigen Sie Ihr Glas und klicken Sie auf OK.
  • Erneut erstellen und erneut ausführen.
+0

Das ist die Sache, es beinhaltet die Klasse. Ich kann es deutlich sehen, wenn ich das Projektfenster im Projekt-Explorer-Fenster expandiere. – AlyoshaKaramazov

+0

Meinst du, die Klassendatei ist bereits in JAR-Datei enthalten? Und immer noch NoClassDefFoundError gefunden ?? – swemon

+0

Ich bearbeite meine Antwort für das Hinzufügen von Jar zum Build-Pfad. – swemon

2

Ok, da es keine Lösung ist, und ich habe das gleiche Problem konfrontiert, und ich habe es behoben, so dass ich meine Lösung hier bin setzen ..

Die

Could not initialize class net.sf.cglib.proxy.Enhancer 

bezieht sich auf cglib- nodep jar wie gesagt von @swemon

so auch nach dem neuesten einem Download und das Hinzufügen von meinem Build-Pfad es funktioniert didnt, weil ich vorher eine ältere Version hatte die noch da war JBOSS/deploy/server/myServer/lib Ordner. Alles, was ich getan habe, ist das erforderliche jar (cglib-nodeP.jar mit cglib-nodep-2.2.jar) in diesem Ordner ersetzt, hat ein Buid gemacht, den Server neu gestartet und fertig.

Hinweis: Ihre Version für cglib-nodep jar kann sich von meiner unterscheiden. Stellen Sie sicher, dass Sie die richtige Version von Jar verwenden. NB: 2: Ihr Deployment-Ordner Ihres Servers kann sich von dem auf Ihrem App-Server unterscheiden.

Hoffe, dass hilft!

11

Dieses Problem wird verursacht, indem die asm-Abhängigkeiten, die cglib aufweist, nicht berücksichtigt werden.

Lösung 1: Fügen Sie die richtigen Versionen von asm und asm-util zu Classpath

Lösung 2: Verwenden Sie die cglib-nodep Version (die beide asm Abhängigkeiten enthält).

0

Nach langem Debuggen habe ich die Lösung.Nur müssen die AOP ändern: config zusammen mit den ordnungsgemäß hinzugefügt Gläser wie oben erwähnt,

aop: config Proxy-Ziel-class = "true"

Chaitanya!

Verwandte Themen