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









Reply via email to