Hi Sergey,

thanks for your efforts. The only thing I had to do is to add javax.xml.bind.* 
packages to the boot delegation classpath of my OSGi environment. A point I 
simply didn't think about as most JRE-classes are usually present by default.

Kind regards,
Daniel

Am 22.01.2010 um 17:46 schrieb Sergey Beryozkin:

> Excellent, thanks. Please ping the Felix team, and I'll play with this 
> project too...
> 
> cheers, Sergey
> 
> ----- Original Message ----- From: "Daniel Bimschas" 
> <bimsc...@itm.uni-luebeck.de>
> To: <dev@cxf.apache.org>
> Sent: Friday, January 22, 2010 4:43 PM
> Subject: Re: JAXB and JAX-RS under CXF
> 
> 
> Sergey,
> 
> I'm unsure if that is something that can be fixed at DOSGi level. I just made 
> a demo project and attached it to this mail. I will also send it to the 
> Apache Felix guys who hopefully can inspect the issue (if they care) :D 
> because felix's the framework that doesn't work.
> 
> Regards,
> Daniel
> 
> 
> 
> 
> --------------------------------------------------------------------------------
> 
> 
> 
> Am 22.01.2010 um 17:21 schrieb Sergey Beryozkin:
> 
>> Ok, great it started working for you... Do you reckon that something can 
>> actually be fixed at the DOSGI level ? If yes then indeed, please open a 
>> DOSGI issue and attach a project. But it looks like it is a 
>> container-specific issue ? Which one were you using originally, before 
>> switching to Equinox ?
>> 
>> thanks, Sergey
>> 
>> 
>> ----- Original Message ----- From: "Daniel Bimschas" 
>> <bimsc...@itm.uni-luebeck.de>
>> To: <dev@cxf.apache.org>
>> Sent: Friday, January 22, 2010 4:13 PM
>> Subject: Re: JAXB and JAX-RS under CXF
>> 
>> 
>> Damnit. I just changed the Pax-Runner configuration to only use Equinox and 
>> now the tests pass, everything seems fine. Are you interested in a tiny 
>> Maven-based project demonstrating the issue?
>> 
>> Am 22.01.2010 um 16:58 schrieb Sergey Beryozkin:
>> 
>>> Hi,
>>> 
>>> please see more comments inline
>>> 
>>> <snip/>
>>> 
>>>> 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
>>>> 
>>>> S.B : Do those objects actually have @XmlRootElement ?
>>> 
>>> Yes, they do.
>>> 
>>>> 
>>>> 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?
>>>> 
>>>> S.B : yes, usually it is to do with @XmlRootElement being not present or, 
>>>> in OSGI case, being 'lost' at runtime, due to a missing import package 
>>>> value...You can condigure DOSGI RI to not require @XmlRootElement for 
>>>> JAXRS services...
>>> 
>>> I checked the packaged bundle. It definitely has the JAXB annotation 
>>> packages imported (which is no wonder as I'm using maven-bundle-plugin with 
>>> bnd to generate the Manifest).
>>> 
>>>> S.B : for some reasons there're still invisible to the JAXB runtime. One 
>>>> of users reported a similar issue the other day, JAXB classes have been 
>>>> moved to a bundle separate from the application one. I don't recall what 
>>>> the fix was,  it is just a visibility issue which can be solved at the 
>>>> OSGI level. Please attach a sample bundle if it won't work...
>>> 
>>> How can I configure it for use without annotations?
>>> 
>>>> S.B : You'll need to register a custom JAXBElementProvider as a 
>>>> MessageBodyReader and MessageBodyWriter OSGI service and set a property on 
>>>> it (marshalAsJaxbElement). One will be able to do the same from Spring DM 
>>>> context once we fix the issue of discovering well-known spring beans...
>>> 
>>>> 
>>>> Why is CXF behaving different than "plain" JAXB?
>>>> 
>>>> S.B : what exactly is different ?
>>> 
>>> Just that plain works, and OSGi-based fails because of the errors mentioned 
>>> above. But I guess that's "misconfiguration".
>>> 
>>>> S.B : yes, it's an OSGI configuration  issue. DOSGI can't help on its 
>>>> own...At the last resort try DynamicImport...
>>> 
>>> cheers, Sergey
>>> 
>>>> 
>>>> 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" 
>>>>> <bimsc...@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" 
>>>>>> <bimsc...@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
>>>> 
>>>> 
>>> 
>>> -- 
>>> 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
>> 
>> 
> 
> -- 
> 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

Reply via email to