Hi,
This error generally means two different classloader load same set of
cxf classes, so you see this java.lang.ClassCastException even
between same classes.
In OSGi container, when see this error it indicate that you use
incorrect way to package your bundle, you need check if your bundle
embed some cxf jar(which shouldn't be there at all)? Or the Import-
Package is complete and correct?
I strongly suggest you take a look at cxf-osgi example shipped with
Apache Servicemix 4 kit, which demonstrate how to use cxf in OSGi
container.
If you need more concrete help, you should append your bundle(the src
project with pom.xml which we can build and deploy) and tell use
exactly what's the kind of OSGi container you're using.
Freeman
On 2011-8-30, at 上午5:34, Rodolfo Barbeiro wrote:
Hi everyone!
I'm try create a simple Dynamic WS Client using
JaxWsDynamicClientFactory, but the error
"java.lang.RuntimeException: java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory" occurs.
I'm using the CXF version: cxf-bundle-2.3.4.jar
Can anyone help me?
Rodolfo Barbeiro
The stack trace:
[main] ERROR org.apache.cxf.BusFactory - Failed to determine
BusFactory implementation class name.
java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory
at java.lang.Class.asSubclass(Unknown Source)
at org.apache.cxf.BusFactory.getBusFactoryClass(BusFactory.java:280)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:207)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:194)
at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:90)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:137)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:122)
at
org
.apache
.cxf
.jaxws
.endpoint
.dynamic
.JaxWsDynamicClientFactory
.newInstance(JaxWsDynamicClientFactory.java:71)
at
myorg
.hjk
.engine
.service.OSGiServiceTest.testSoapServiceMock(OSGiServiceTest.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern
.ProbeInvokerImpl.injectContextAndInvoke(ProbeInvokerImpl.java:112)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern.ProbeInvokerImpl.findAndInvoke(ProbeInvokerImpl.java:71)
at
org
.ops4j
.pax
.exam
.raw.extender.intern.ProbeInvokerImpl.call(ProbeInvokerImpl.java:58)
at
org
.ops4j
.pax
.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:
83)
at
org
.ops4j
.pax
.exam
.spi
.reactors
.EagerSingleStagedReactor.invoke(EagerSingleStagedReactor.java:85)
at org.ops4j.pax.exam.junit.JUnit4TestRunner
$2.evaluate(JUnit4TestRunner.java:259)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
76)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at
org.ops4j.pax.exam.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:
86)
at
org
.eclipse
.jdt
.internal
.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
197)
[main] ERROR org.apache.cxf.BusFactory - Failed to instantiate bus
factory.
java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory
at java.lang.Class.asSubclass(Unknown Source)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:218)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:194)
at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:90)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:137)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:122)
at
org
.apache
.cxf
.jaxws
.endpoint
.dynamic
.JaxWsDynamicClientFactory
.newInstance(JaxWsDynamicClientFactory.java:71)
at
myorg
.hjk
.engine
.service.OSGiServiceTest.testSoapServiceMock(OSGiServiceTest.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern
.ProbeInvokerImpl.injectContextAndInvoke(ProbeInvokerImpl.java:112)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern.ProbeInvokerImpl.findAndInvoke(ProbeInvokerImpl.java:71)
at
org
.ops4j
.pax
.exam
.raw.extender.intern.ProbeInvokerImpl.call(ProbeInvokerImpl.java:58)
at
org
.ops4j
.pax
.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:
83)
at
org
.ops4j
.pax
.exam
.spi
.reactors
.EagerSingleStagedReactor.invoke(EagerSingleStagedReactor.java:85)
at org.ops4j.pax.exam.junit.JUnit4TestRunner
$2.evaluate(JUnit4TestRunner.java:259)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
76)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at
org.ops4j.pax.exam.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:
86)
at
org
.eclipse
.jdt
.internal
.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
197)
[org.ops4j.pax.exam.junit.JUnit4TestRunner] : Exception
org.ops4j.pax.exam.TestContainerException:
java.lang.reflect.InvocationTargetException
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern
.ProbeInvokerImpl.injectContextAndInvoke(ProbeInvokerImpl.java:118)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern.ProbeInvokerImpl.findAndInvoke(ProbeInvokerImpl.java:71)
at
org
.ops4j
.pax
.exam
.raw.extender.intern.ProbeInvokerImpl.call(ProbeInvokerImpl.java:58)
at
org
.ops4j
.pax
.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:
83)
at
org
.ops4j
.pax
.exam
.spi
.reactors
.EagerSingleStagedReactor.invoke(EagerSingleStagedReactor.java:85)
at org.ops4j.pax.exam.junit.JUnit4TestRunner
$2.evaluate(JUnit4TestRunner.java:259)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
76)
at
org
.junit
.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at
org.ops4j.pax.exam.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:
86)
at
org
.eclipse
.jdt
.internal
.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
197)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org
.ops4j
.pax
.exam
.raw
.extender
.intern
.ProbeInvokerImpl.injectContextAndInvoke(ProbeInvokerImpl.java:112)
... 20 more
Caused by: java.lang.RuntimeException: java.lang.ClassCastException:
class org.apache.cxf.bus.spring.SpringBusFactory
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:224)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:194)
at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:90)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:137)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:122)
at
org
.apache
.cxf
.jaxws
.endpoint
.dynamic
.JaxWsDynamicClientFactory
.newInstance(JaxWsDynamicClientFactory.java:71)
at
myorg
.hjk
.engine
.service.OSGiServiceTest.testSoapServiceMock(OSGiServiceTest.java:133)
... 25 more
Caused by: java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory
at java.lang.Class.asSubclass(Unknown Source)
at org.apache.cxf.BusFactory.newInstance(BusFactory.java:218)
... 31 more
---------------------------------------------
Freeman Fang
FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com