cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Holger Delfs (JIRA)" <j...@apache.org>
Subject [jira] Created: (CXF-2180) ProxyHelper requires cglib even if interface is used as client service class
Date Sat, 18 Apr 2009 16:52:14 GMT
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


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