[
https://issues.apache.org/jira/browse/CXF-3617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069102#comment-13069102
]
Sergey Beryozkin commented on CXF-3617:
---------------------------------------
> No, I think a better solution would be automatic registration. This is how
> the Restlet library does it. You don't have to worry about mappings.
Well, we do ship a default JSONProvider which assumes objects are JAXB beans -
those will be automatically mapped. On top of it we can customize a lot
JSONProvider works with data. Thus we can't drop it and replace with Jackson or
XMLStream provider.
We can also application/x+bar medium type and MyObject - would you expect it
automatically mapped as well ?
The point I'm making is that we ship a default JSONProvider. And registering
custom or existing 3rd party providers is very easy. Even if CXF did ship say
XStream provider then you;d still need to register it explicitly for it to be
preferred to the default JSONProvider - but I don't think we can afford
shipping multiple JSON providers
> Automatic Type Converters for Restful Clients
> ---------------------------------------------
>
> Key: CXF-3617
> URL: https://issues.apache.org/jira/browse/CXF-3617
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS
> Reporter: Shaun Elliott
>
> Given the following interface:
> {code}
> @POST
> @Path( "execute" )
> @Produces( "application/json" )
> MyObject execute( MyObject myObject );
> {code}
> One must provide MessageBodyReader\Writer or face the following exception:
> {code}
> Exception in thread "main" org.apache.cxf.interceptor.Fault: .No message body
> writer found for class : class com.company.datatype.normal.MyObject.
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl$BodyWriter.handleMessage(ClientProxyImpl.java:523)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:438)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:177)
> at $Proxy13.execute(Unknown Source)
> at com.company.JaxTestClient.main(JaxTestClient.java:26)
> {code}
> Other competing libraries (such as Restlet) support automatic type mapping
> out of the box via XStream and Jackson. Given CXF's compliance to JAX-RS it
> would be helpful if this boilerplate type code were given out of the box too.
> See here for more information:
> http://stackoverflow.com/questions/6312030/cxf-no-message-body-writer-found-for-class-automatically-mapping-non-simple-re
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira