cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <>
Subject Re: Why is RI JAXB context is required in JAXBDataBinding class ?
Date Thu, 16 Aug 2012 00:17:04 GMT

As I mentioned, you can't simply wrap spec jar like jaxb-api, as SPI mechanism doesn't work
in OSGi container. So the spec jar need have OSGiLocator stuff, so that it can load jaxb-impl
bundles from OSGi container, servicemix already provide such spec jars with OSGiLocator, so
you better use spec jar from servicemix.

Moreover, you also need fine-tune the system bundle export package, some package like javax.xml.bind*,
javax.xml.soap,* shouldn't exported by system bundle.
I'd say adjust a plain OSGi container to support CXF need more effort,  but Servicemix/CXF
already do it for you. Please try with Servicemix/CXF if you can, then you will find it's
very easy to support CXF.

Freeman Fang

Twitter: freemanfang

On 2012-8-15, at 下午9:25, Ivan wrote:

> I use Equonix as the OSGi container, and now I have installed all the
> required bundles, and all of them are resovled and started correctly. Guess
> that this issue is not related to the actual container is used. even turn
> to Karaf (a high level infrasture on the native OSGi runtime), the issue
> may still occur, as CXF jaxb databinding bundle will be wired to 2.2 JAXB
> API bundle.
> Could you show me some light for the CCE in JAXBDataBinding ? Could CXF
> work with other JAXB implemenation ? Thanks.
> 2012/8/15 Freeman Fang <>
>> Hi,
>> Which OSGi container you are using?
>> To use CXF in OSGi container, a lot of effort need be done,  jaxb-api and
>> jaxb-impl bundle is one of them, but not all. Servicemix wrap lots of
>> bundles(spec bundle like jaxb-api need use OSGiLocator stuff)  and karaf
>> provide a provisioning mechanism(feature) to is convenient to install CXF,
>> so I suggest you use Apache Servicemix or Karaf as the OSGi container,
>> which support CXF better.
>> Actually Servicemix support CXF OOTB now, and Karaf 2.2.x also support to
>> install CXF feature easily,  you just need replace the with
>>, both in $KARAF_HOME/etc folder.
>> For Karaf 2.3.x and 3.x(which could be released soon), as it endorse new
>> spec api jar from Servicemix, so both can support CXF OOTB.
>> Freeman
>> -------------
>> Freeman Fang
>> FuseSource
>> Web:
>> Twitter: freemanfang
>> Blog:
>> weibo:
>> On 2012-8-15, at 下午4:57, Ivan wrote:
>>> I am trying to use CXF 2.6.1 in OSGi environment, as jdk 6 does not ship
>>> the latest JAXB API and implementation, so deployed a JAXB 2.2 API and a
>>> repackaged RI JAXB impl as bundles. While running my application, it
>> shows
>>> ClassCastException one line 392 of JAXBDataBinding. Think the problem is
>>> that, the CXF bundle is wired to the 2.2 API and the codes load the
>>> hardcode RI JAXB classes (which should be from JDK).
>>> From the code logic, seems that it is used for schema things, so does it
>>> mean that CXF always need the RI JAXB impl ? If does, it it possible to
>>> have a way to configure a RI class name, as I repackaged the RI jaxb impl
>>> for some other reasons.
>>> Thanks.
>>> --
>>> Ivan
> -- 
> Ivan

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message