[ 
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.

Reply via email to