cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (CXF-2180) ProxyHelper requires cglib even if interface is used as client service class
Date Tue, 21 Apr 2009 15:45:47 GMT

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


Mime
View raw message