3 Replies Latest reply on Aug 6, 2012 4:56 PM by Illya Kysil

    CGLIB errors

    Eric Manuguerra Newbie

      Hi,

       

      I am trying to deploy a subset of a Spring 2.5.6 application on JBoss AS 7.1.1 (this application is currently running on JBoss 5.1.0 GA).

       

      I have installed Snowdrop on JBoss as explained in the manual.

       

      The application is an EAR having the following structure :

       

      app-root
           /lib
                ...
                cglib-2.1_3.jar
                ...
           /META-INF
                application.xml
                jboss-deployment-structure.xml
           
           module1.jar
      

       

      The module1.jar contains the Spring application context definition files which are loaded by org.jboss.spring.vfs.context.VFSClassPathXmlApplicationContext.

       

      After startup, Spring complains about a missing cglib library and raises an AopConfigException :

       

      Caused by: org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.
                at org.springframework.aop.framework.DefaultAopProxyFactory.createAopProxy(DefaultAopProxyFactory.java:67) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.aop.framework.ProxyCreatorSupport.createAopProxy(ProxyCreatorSupport.java:106) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:490) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:365) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:325) [spring-aop.jar:2.5.6.SEC02]
                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:361) [spring-beans.jar:2.5.6.SEC02]
                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1344) [spring-beans.jar:2.5.6.SEC02]
                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) [spring-beans.jar:2.5.6.SEC02]
      

       

      If I add the cglib library as a dependency of the org.springframework.spring:snowdrop module, then I get an IllegalArgumentException :

       

      java.lang.IllegalArgumentException: class com.itesoft.share.persistence.iod.multitenant.TenantInterceptor$$EnhancerByCGLIB$$398b4762_3 is not an enhanced class
                at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:618) [cglib-2.1_3.jar:]
                at net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:609) [cglib-2.1_3.jar:]
                at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:631) [cglib-2.1_3.jar:]
                at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:538) [cglib-2.1_3.jar:]
                at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225) [cglib-2.1_3.jar:]
                at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377) [cglib-2.1_3.jar:]
                at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285) [cglib-2.1_3.jar:]
                at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201) [spring-aop.jar:2.5.6.SEC02]
                ... 189 more
      

       

      I don't understand why this is happening and I can't find much information about tyhe "not an enhanced class" exception.

       

      I don't encounter these errors on JBoss 5.1.0 with the same Spring and CGLIB versions.

       

      Any help would be much appreciated.

       

      Best regards,

      Eric