cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Bimschas <bimsc...@itm.uni-luebeck.de>
Subject Re: JAXB and JAX-RS under CXF
Date Fri, 22 Jan 2010 15:00:20 GMT
Thanks Sergey,

just one more question. I converted a plain (non-OSGi) JAX-RS project to DOSGi-based CXF.
Now, for some of my JAXB annotated classes I get the error message:

  com.sun.istack.internal.SAXException2: unable to marshal type "a.b.c.X" as an element because
it is missing an @XmlRootElement annotation

I use Pax Exam to set up a test case that marshalls the object to a byte[] and unmarshalls
it afterwards from it.

Do you know that error? Why is CXF behaving different than "plain" JAXB? Is it using a different
JAXB implementation at all? And if yes, is it possible to switch to the implementation included
in the JVM?

Kind regards,
Daniel

Am 21.01.2010 um 13:01 schrieb Sergey Beryozkin:

> Hi
> 
> Please see a comment with S.B
> 
> ----- Original Message ----- From: "Daniel Bimschas" <bimschas@itm.uni-luebeck.de>
> To: <dev@cxf.apache.org>
> Sent: Wednesday, January 20, 2010 6:07 PM
> Subject: Re: JAXB and JAX-RS under CXF
> 
> 
> Oh great thing Sergey,
> 
> thanks for that answer. I just tried and it works just fine. In fact, documentation was
either misleading or I misread. The documentation says
> 
> "This property has a limited value for JAXRS services as JAXB is supported by default,
the only supported value is 'aegis' and it is a shortcut for registering an Aegis provider
[...]"
> 
> which is a little hard to understand. One the one hand it says JAXB is supported, but
on the other hand 'aegis' is the only value you're allowed to use. So this confused me.
> 
>> S.B : it kind of does not makse sense, now that I read it again. (CXF) JAXRS do not
use (CXF)databindings as often as they use 'providers', technically both terms are probably
identical, but I wanted to not require users to set this property given that they will probably
want to register say a DataBindingProvider provider delegating to CXF Aegis as OSGI service,
with some custom configuration, etc...That said, for simple cases, letting users just to do
"org.apache.cxf.rs.databinding=atom" would also make sense...
> 
> JAXB will be supported with or without "org.apache.cxf.rs.databinding=jaxb" but I'll
look into simplifying the documentation and enhancing a bit the way this org.apache.cxf.rs.databinding
property is handled...
> 
> thanks, Sergey
> 
> 
> Thanks for the clarification and the impressively fast response!
> 
> Regards,
> Daniel
> 
> Am 20.01.2010 um 18:20 schrieb Sergey Beryozkin:
> 
>> Hi
>> 
>> It is possible. It has to work, you do not even has to enable it for JAXRS; for DOSGI-RI/JAX-RS
it is a default databinding given that the JAXRS spec requires the JAXB support OTB so I thought
asking users to explictly add org.apache.cxf.rs.databinding=jaxb just to enable JAXB would
be too much...
>> Are you seeing any issues ? I'm thinking may be I've just done another piece of the
documentation which is confusing ? One thing I'm saying there is that if you do not want to
have your bundle modified for JAXB be supported at runtime as well as to explicitly annotate
beans with @XmlRootElement and friends (that is, to import JAXB packages) then if it is JAX-RS
only you can register a custom (CXF JAXRS) JAXBElementProvider and tell it to use JAXBElement
internally and that is it...
>> 
>> cheers, Sergey
>> 
>> ----- Original Message ----- From: "Daniel Bimschas" <bimschas@itm.uni-luebeck.de>
>> To: <dev@cxf.apache.org>
>> Sent: Wednesday, January 20, 2010 5:07 PM
>> Subject: JAXB and JAX-RS under CXF
>> 
>> 
>> Hi list,
>> 
>> following the DOSGi reference [1] I see that it's not possible to use JAXB under
JAX-RS but with JAX-WS. Is that correct? And what is the reason for it?
>> 
>> Kind regards,
>> Daniel
>> 
>> [1] http://cxf.apache.org/distributed-osgi-reference.html
> 
> -- 
> M.Sc. Daniel Bimschas
> Institute of Telematics, University of Lübeck
> http://www.itm.uni-luebeck.de/users/bimschas
> Ratzeburger Allee 160, 23538 Lübeck, Germany
> Phone: +49 451 500 5389
> 
> 

-- 
M.Sc. Daniel Bimschas
Institute of Telematics, University of Lübeck
http://www.itm.uni-luebeck.de/users/bimschas
Ratzeburger Allee 160, 23538 Lübeck, Germany
Phone: +49 451 500 5389


Mime
View raw message