Hi Adam, Thanks for the report. I've declared the dependency on CGLib in the Spring library instead of the Spring extension.
Could you try again with SVN trunk or the next snapshot? Best regards, Jerome Louvel -- Restlet ~ Founder and Lead developer ~ http://www.restlet.org Noelios Technologies ~ Co-founder ~ http://www.noelios.com -----Message d'origine----- De : news [mailto:[EMAIL PROTECTED] De la part de Adam Harris Envoye : vendredi 3 octobre 2008 23:34 A : [email protected] Objet : SpringFinder cannot see CGLib classes in OSGi I am trying out the Spring Extensions of Restlet 1.1RC2 in OSGi, specifically Equinox 3.4.0, Spring 2.5.5, and Spring-DM 1.1.1. My Spring application context is using the SpringFinder bean in much the same way the Restlet Spring example does: <bean id="v1Router" class="org.restlet.ext.spring.SpringRouter"> <property name="attachments"> <map> <entry key="/jobs"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="createResource" bean="jobsResource"/> </bean> </entry> </map> </property> </bean> When Spring tries to use CGLib for the "lookup-method" it cannot find the CGLib classes and gets this exception: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.restlet.ext.spring.SpringFinder#19e215b' defined in URL [bundleentry://38/META-INF/spring/restlet.pde-context.xml]: Instantiation of bean failed; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory . instantiateBean(AbstractAutowireCapableBeanFactory.java:883) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory . createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory . doCreateBean(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory $1. run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory . createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.BeanDefinitionValueResolver. resolveInnerBean(BeanDefinitionValueResolver.java:219) ... 32 more Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null at net.sf.cglib.core.AbstractClassGenerator.create( AbstractClassGenerator.java:237) at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377) at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285) at org.springframework.beans.factory.support.CglibSubclassingInstantiationStrat egy $CglibSubclassCreator. instantiate(CglibSubclassingInstantiationStrategy.java:116) at org.springframework.beans.factory.support.CglibSubclassingInstantiationStrat egy .instantiateWithMethodInjection( CglibSubclassingInstantiationStrategy.java:70) at org.springframework.beans.factory.support.SimpleInstantiationStrategy. instantiate(SimpleInstantiationStrategy.java:65) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory . instantiateBean(AbstractAutowireCapableBeanFactory.java:877) ... 38 more Caused by: java.lang.reflect.InvocationTargetException 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:597) at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384) at net.sf.cglib.core.AbstractClassGenerator.create( AbstractClassGenerator.java:219) ... 44 more Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Factory at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) ... 50 more Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.Factory at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal( BundleLoader.java:481) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass( BundleLoader.java:397) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass( BundleLoader.java:385) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass( DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 52 more The only solution I've found is to modify the MANIFEST.MF in org.restlet.ext.spring_2.5.jar and import all the of "net.sf.cglib.*" related packages. Is this a bug in the Restlet's Spring Extension manifest or might I have something wrong in my environment? Thanks for your help, Adam

