You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2009/04/21 17:45:47 UTC

[jira] Resolved: (CXF-2180) ProxyHelper requires cglib even if interface is used as client service class

     [ https://issues.apache.org/jira/browse/CXF-2180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-2180.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2.1
                   2.1.5
         Assignee: Daniel Kulp

> ProxyHelper requires cglib even if interface is used as client service class
> ----------------------------------------------------------------------------
>
>                 Key: CXF-2180
>                 URL: https://issues.apache.org/jira/browse/CXF-2180
>             Project: CXF
>          Issue Type: Bug
>          Components: Core, REST
>    Affects Versions: 2.2
>            Reporter: Holger Delfs
>            Assignee: Daniel Kulp
>             Fix For: 2.1.5, 2.2.1
>
>
> When using a JAX-RS proxy client with the spring bean
>   <jaxrs:client id="subscriberService" serviceClass="sample.SubscriberService"
>     address="http://localhost:8080/services/">
>   </jaxrs:client>
> where sample.SubscriberService is an interface, I would expect, that I don't need cglib in my classpath. Instead I get org.springframework.beans.factory.BeanCreationException with the following root cause:
> Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Callback
> 	at org.apache.cxf.common.util.ProxyHelper.<clinit>(ProxyHelper.java:33)
> 	at org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXRSClientFactoryBean.java:134)
> 	at org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFactoryBean.java:119)
> 	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 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:115)
> 	... 18 more
> Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.Callback
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> 	... 26 more
> which I can only fix by including cglib in my Maven dependencies.
> The catch block in the static initializer of ProxyHelper lets me assume, that the usage of cglib features was intended to be optional. But if cglib.jar is not available, the class loading of CglibProxyHelper causes the error above.
> I suggest to either catch Throwable when calling CglibProxyHelper, or to avoid the class loading dependency on cglib classes within CglibProxyHelper.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.