You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by cmoulliard <cm...@gmail.com> on 2009/11/27 13:14:03 UTC

@Produce - MIME TYPE implemented in CXF-JAXRS

Hi,

Is there somewhere a document describing which mime-type have been
implemented by default in CXF for JAX-RS ?

ex :  application/xml, application/xhtml+xml, application/json, ...

Regards,

Charles

-----
Charles Moulliard
SOA Architect

My Blog :  http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/  
-- 
View this message in context: http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26541657.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: @Produce - MIME TYPE implemented in CXF-JAXRS

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi Charles


>
> Many thanks.
>
> I camel project, I have designed a new dataformat component which allows to
> bind non XML format into POJOs using annotations
> (http://camel.apapche.org/bindy.html). Using marshaling/unmarshaling methods
> of camel, we can transform the content of a stream into POJO or vice versa.
>
> I'm very interested to adapt camel bindy in order to add it as message body
> writer / reader in CXF JAX-RS. This will allow to send a text/plain message
> containing CSV text or Key value Pair (ex FIX messages) and map it to their
> POJOs or from POJOS, generate the text which is send back to the API Calling
> JAX-RS.

sounds good

>
> Can you provide more info about creating message body writer / reader in CXF
> JAX-RS ?

Please have a look here :

http://cwiki.apache.org/CXF20DOC/jax-rs.html#JAX-RS-MessageBodyProviders

For ex, a custom BindyProvider can implement both MessageBodyReader and MessageBodyWriter.
It should be ok for a start just to have "true" returned from isReadable/isWriteable and -1 from getSize().


Next, in writeTo/readFrom, you can check Annotation[]  for expected Bindy annotations and proceed from there.
You might want to use CXF specifc AnnotationUtils.

In writeTo, it is method level annotations which are passed in, ex, they'll contain @GET and @BindySpecific if we have a method like

@GET
@BindySpecific
SomeObject getObject()

while in readFrom it is annotations attached to a given method parameter, ex, @BindySpecific will be passed in this case

@POST
void post(@BindySpecific SomeObject)

in writeTo()/readFrom, you can also check the annotation on the actual SomeObject class

hope it gives some starting info, let me know please if more info is needed

cheers, Sergey

>
> Regards,
>
> Charles
>
>
> Sergey Beryozkin-2 wrote:
>>
>> Hi Charles
>>
>> I agree, would be worth listing explicitly the types which are supported
>> out of the box.
>> I believe the only media types which JAXRS requires to support are
>> 1. application/xml, application/*+xml and text/xml assuming JAXB or JAXP
>> Source is used
>> 2. application/octet-stream for types like InputStream
>> 3. text/plain for String
>>
>> Probably all the JAXRS implementations support application/json, in CXF
>> case it is a JAXB-based Jettison provider which does it.
>> Users can register custom providers for handling application/xml,
>> application/json, etc (ex, Jackson for JSON, XmlBeans or Aegis for
>> XML, etc).
>>
>> CXF ships providers for handling application/atom+xml, multipart/*, as
>> well as providers such as XSLTJaxbProvider and
>> RequestDispatchProvider which facilitate the creation of xml or html based
>> data. XSLTJaxbProvider alone can be used to produce any
>> type of format...though it's obviously restricted to consuming xml-based
>> data only
>>
>> Hope it  helps, Sergey
>>
>>>
>>> Hi,
>>>
>>> Is there somewhere a document describing which mime-type have been
>>> implemented by default in CXF for JAX-RS ?
>>>
>>> ex :  application/xml, application/xhtml+xml, application/json, ...
>>>
>>> Regards,
>>>
>>> Charles
>>>
>>> -----
>>> Charles Moulliard
>>> SOA Architect
>>>
>>> My Blog :  http://cmoulliard.blogspot.com/
>>> http://cmoulliard.blogspot.com/
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26541657.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>
>>
>>
>
>
> -----
> Charles Moulliard
> SOA Architect
>
> My Blog :  http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/
> -- 
> View this message in context: http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26542270.html
> Sent from the cxf-user mailing list archive at Nabble.com.
> 


Re: @Produce - MIME TYPE implemented in CXF-JAXRS

Posted by cmoulliard <cm...@gmail.com>.
Many thanks.

I camel project, I have designed a new dataformat component which allows to
bind non XML format into POJOs using annotations
(http://camel.apapche.org/bindy.html). Using marshaling/unmarshaling methods
of camel, we can transform the content of a stream into POJO or vice versa.

I'm very interested to adapt camel bindy in order to add it as message body
writer / reader in CXF JAX-RS. This will allow to send a text/plain message
containing CSV text or Key value Pair (ex FIX messages) and map it to their
POJOs or from POJOS, generate the text which is send back to the API Calling
JAX-RS.

Can you provide more info about creating message body writer / reader in CXF
JAX-RS ?

Regards,

Charles


Sergey Beryozkin-2 wrote:
> 
> Hi Charles
> 
> I agree, would be worth listing explicitly the types which are supported
> out of the box.
> I believe the only media types which JAXRS requires to support are
> 1. application/xml, application/*+xml and text/xml assuming JAXB or JAXP
> Source is used
> 2. application/octet-stream for types like InputStream
> 3. text/plain for String
> 
> Probably all the JAXRS implementations support application/json, in CXF
> case it is a JAXB-based Jettison provider which does it.
> Users can register custom providers for handling application/xml,
> application/json, etc (ex, Jackson for JSON, XmlBeans or Aegis for 
> XML, etc).
> 
> CXF ships providers for handling application/atom+xml, multipart/*, as
> well as providers such as XSLTJaxbProvider and 
> RequestDispatchProvider which facilitate the creation of xml or html based
> data. XSLTJaxbProvider alone can be used to produce any 
> type of format...though it's obviously restricted to consuming xml-based
> data only
> 
> Hope it  helps, Sergey
> 
>>
>> Hi,
>>
>> Is there somewhere a document describing which mime-type have been
>> implemented by default in CXF for JAX-RS ?
>>
>> ex :  application/xml, application/xhtml+xml, application/json, ...
>>
>> Regards,
>>
>> Charles
>>
>> -----
>> Charles Moulliard
>> SOA Architect
>>
>> My Blog :  http://cmoulliard.blogspot.com/
>> http://cmoulliard.blogspot.com/
>> -- 
>> View this message in context:
>> http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26541657.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 


-----
Charles Moulliard
SOA Architect

My Blog :  http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/  
-- 
View this message in context: http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26542270.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: @Produce - MIME TYPE implemented in CXF-JAXRS

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi Charles

I agree, would be worth listing explicitly the types which are supported out of the box.
I believe the only media types which JAXRS requires to support are
1. application/xml, application/*+xml and text/xml assuming JAXB or JAXP Source is used
2. application/octet-stream for types like InputStream
3. text/plain for String

Probably all the JAXRS implementations support application/json, in CXF case it is a JAXB-based Jettison provider which does it.
Users can register custom providers for handling application/xml, application/json, etc (ex, Jackson for JSON, XmlBeans or Aegis for 
XML, etc).

CXF ships providers for handling application/atom+xml, multipart/*, as well as providers such as XSLTJaxbProvider and 
RequestDispatchProvider which facilitate the creation of xml or html based data. XSLTJaxbProvider alone can be used to produce any 
type of format...though it's obviously restricted to consuming xml-based data only

Hope it  helps, Sergey

>
> Hi,
>
> Is there somewhere a document describing which mime-type have been
> implemented by default in CXF for JAX-RS ?
>
> ex :  application/xml, application/xhtml+xml, application/json, ...
>
> Regards,
>
> Charles
>
> -----
> Charles Moulliard
> SOA Architect
>
> My Blog :  http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/
> -- 
> View this message in context: http://old.nabble.com/%40Produce---MIME-TYPE-implemented-in-CXF-JAXRS-tp26541657p26541657.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>