cxf-dev mailing list archives

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

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, javax.xml.ws* 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
-------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

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 <freeman.fang@gmail.com>
> 
>> 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 jre.properties with
>> jre.properties.cxf, 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
>> Email:ffang@fusesource.com
>> Web: fusesource.com
>> Twitter: freemanfang
>> Blog: http://freemanfang.blogspot.com
>> http://blog.sina.com.cn/u/1473905042
>> weibo: http://weibo.com/u/1473905042
>> 
>> 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


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