You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Ryan Chen <ry...@gmail.com> on 2012/01/19 00:36:27 UTC

BusFactory.getBugFactoryClass throws NoClassDefFoundError in OSGI container

Hi,

We just upgraded CXF from 2.3.3 to 2.3.8 in our OSGI container and got the
following error after loading CXFNonSpringServlet.

java.lang.NoClassDefFoundError: org/springframework/beans/BeansException
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass2(ClassLoaderUtils.java:228)
org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:222)
org.apache.cxf.BusFactory.getBusFactoryClass(BusFactory.java:285)
org.apache.cxf.BusFactory.newInstance(BusFactory.java:212)
org.apache.cxf.BusFactory.newInstance(BusFactory.java:199)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBusNoConfig(CXFNonSpringServlet.java:45)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:38)
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet.loadBus(CXFNonSpringJaxrsServlet.java:74)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:84)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:722)

We realized the file change (revision 1091006) in
cxf-rt-core.jar/META-INF/service/org.apache.cxf.bus.factory actually cause
the problem. In an OSGI environment, BusFactory.getBugFactoryClass throws
NoClassDefFoundError rather than ClassNotFoundException for
busFacotryCondition “org.springframework.beans.BeansException”

>>> rt/core/src/main/resources/META-INF/service/org.apache.cxf.bus.factory:2.3.3
>>> (651669)
org.apache.cxf.bus.spring.SpringBusFactory
org.springframework.context.ApplicationContext
<<<
rt/core/src/main/resources/META-INF/service/org.apache.cxf.bus.factory:2.3.8
(1091006)
org.apache.cxf.bus.spring.SpringBusFactory
org.springframework.context.ApplicationContext,org.springframework.beans.BeansException


Thanks,
~ryan


--
View this message in context: http://cxf.547215.n5.nabble.com/BusFactory-getBugFactoryClass-throws-NoClassDefFoundError-in-OSGI-container-tp5156319p5156319.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: BusFactory.getBugFactoryClass throws NoClassDefFoundError in OSGI container

Posted by Sergey Beryozkin <sb...@gmail.com>.
On 19/01/12 18:39, Ryan Chen wrote:
> Thanks Sergey. The fix solves the problem.
>

Cool, Dan is also working on multiple CXF releases, including 2.3.9...

Cheers, Sergey

> Cheers,
> ~ryan
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/BusFactory-getBusFactoryClass-throws-NoClassDefFoundError-in-OSGI-container-tp5156319p5158542.html
> Sent from the cxf-user mailing list archive at Nabble.com.


Re: BusFactory.getBugFactoryClass throws NoClassDefFoundError in OSGI container

Posted by Ryan Chen <ry...@gmail.com>.
Thanks Sergey. The fix solves the problem.

Cheers,
~ryan

--
View this message in context: http://cxf.547215.n5.nabble.com/BusFactory-getBusFactoryClass-throws-NoClassDefFoundError-in-OSGI-container-tp5156319p5158542.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: BusFactory.getBugFactoryClass throws NoClassDefFoundError in OSGI container

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi Ryan

thanks for reporting this issue,

On 18/01/12 23:36, Ryan Chen wrote:
> Hi,
>
> We just upgraded CXF from 2.3.3 to 2.3.8 in our OSGI container and got the
> following error after loading CXFNonSpringServlet.
>
> java.lang.NoClassDefFoundError: org/springframework/beans/BeansException
> java.lang.Class.forName0(Native Method)
> java.lang.Class.forName(Class.java:169)
> org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass2(ClassLoaderUtils.java:228)
> org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:222)
> org.apache.cxf.BusFactory.getBusFactoryClass(BusFactory.java:285)
> org.apache.cxf.BusFactory.newInstance(BusFactory.java:212)
> org.apache.cxf.BusFactory.newInstance(BusFactory.java:199)
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBusNoConfig(CXFNonSpringServlet.java:45)
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:38)
> org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet.loadBus(CXFNonSpringJaxrsServlet.java:74)
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:84)
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> java.lang.Thread.run(Thread.java:722)
>
> We realized the file change (revision 1091006) in
> cxf-rt-core.jar/META-INF/service/org.apache.cxf.bus.factory actually cause
> the problem. In an OSGI environment, BusFactory.getBugFactoryClass throws
> NoClassDefFoundError rather than ClassNotFoundException for
> busFacotryCondition “org.springframework.beans.BeansException”
>
>>>> rt/core/src/main/resources/META-INF/service/org.apache.cxf.bus.factory:2.3.3
>>>> (651669)
> org.apache.cxf.bus.spring.SpringBusFactory
> org.springframework.context.ApplicationContext
> <<<
> rt/core/src/main/resources/META-INF/service/org.apache.cxf.bus.factory:2.3.8
> (1091006)
> org.apache.cxf.bus.spring.SpringBusFactory
> org.springframework.context.ApplicationContext,org.springframework.beans.BeansException
>

That has been fixed at 2.3.9-SNAPSHOT, please see the changes at

https://issues.apache.org/jira/browse/CXF-4045?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel#issue-tabs

Please test them locally if you can get a chance
Cheers, Sergey

>
> Thanks,
> ~ryan
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/BusFactory-getBugFactoryClass-throws-NoClassDefFoundError-in-OSGI-container-tp5156319p5156319.html
> Sent from the cxf-user mailing list archive at Nabble.com.


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com