2012-09-20 37 views
5

Nhận được lỗi sau khi cố gắng chạy một ứng dụng mvc mùa xuân với hibernate trong nhật thực.Không thể khởi tạo lớp 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) 

Tôi đã đặt cglib-nodep-2.2.3 .jar vào thư mục web-inf/lib của mình nhưng tôi vẫn tiếp tục gặp lỗi tương tự. Không chắc chắn tại sao khi lớp học có trong bình. Tôi nhận được thông báo lỗi tương tự cho dù bình có ở đó không.

Trả lời

0

Bạn đang thiếu bình. Tôi nghĩ rằng cglib-nodep-2.2.3.jar không bao gồm các lớp học net.sf.cglib.proxy.Enhancer bạn cần. Bạn nên thử http://www.jarfinder.com/index.php/java/search/~net.sf.cglib.proxy.Enhancer~ để tìm tệp jar nào bao gồm lớp này và thêm một trong các tệp jar này để tạo đường dẫn.

Nếu bạn tìm thấy lớp học của bạn được chứa trong đó jar, sau khi bạn thêm lib của bạn để web-inf thư mục/lib,

  • Nhấp chuột phải vào dự án của bạn
  • Bấm Build Path> Configure Build Path. ..
  • Chọn thẻ Thư viện và nhấp vào Thêm JAR ...
  • Chĩa của bạn và nhấp vào OK.
  • Tạo lại và chạy lại.
+0

Đó là điều, nó bao gồm cả lớp. Tôi hoàn toàn có thể thấy rõ khi tôi mở rộng lọ trong cửa sổ Project Explorer. – AlyoshaKaramazov

+0

Bạn có nghĩa là tệp lớp đã được đưa vào tệp jar không ?? Và vẫn còn NoClassDefFoundError tìm thấy ?? – swemon

+0

Tôi chỉnh sửa câu trả lời của mình để thêm jar để tạo đường dẫn. – swemon

2

Ok như không có giải pháp và tôi đã phải đối mặt với cùng một vấn đề và tôi đã cố định nó vì vậy tôi đang đưa giải pháp của tôi ở đây ..

Các

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

có liên quan đến cglib- Vì vậy, ngay cả sau khi tải xuống phiên bản mới nhất và thêm vào đường dẫn xây dựng của tôi, nó không hoạt động vì trước đây tôi đã có phiên bản cũ hơn vẫn còn trong thư mục JBOSS/deploy/server/myServer/lib. Tất cả những gì tôi đã làm là thay thế jar cần thiết (cglib-nodep.jar bằng cglib-nodep-2.2.jar) trong thư mục này, đã làm một buid, khởi động lại máy chủ và thực hiện.

NB: Phiên bản của bạn cho lọ cglib-nodep có thể khác với của tôi. Đảm bảo sử dụng đúng phiên bản của Jar. NB: 2: Thư mục triển khai máy chủ của bạn có thể khác với thư mục dựa trên máy chủ ứng dụng bạn đang sử dụng.

Hy vọng điều đó sẽ hữu ích!

11

Vấn đề này là do không bao gồm các phụ thuộc asm mà cglib có.

Giải pháp 1: Thêm phiên bản chính xác của asm và asm-util vào classpath của bạn

Giải pháp 2: Sử dụng phiên bản cglib-nodep (trong đó bao gồm cả phụ thuộc asm).

0

Sau khi gỡ lỗi dài, tôi đã nhận được giải pháp.Chỉ cần thay đổi aop: config cùng với các lọ bổ sung đúng cách như đã nêu ở trên,

aop: config proxy-mục tiêu-class = "true"

Chaitanya!

Các vấn đề liên quan