You have to tell CXF to use JSON. We do this with the following
configuration:
<util:map id="jsonNamespaceMap" map-class="java.util.Hashtable">
<entry key="http://www.myCompany.com/product/service/model/1"
value="m"/>
</util:map>
<jaxrs:server id="jaxrsServer"
address="${jaxrsServerEndpointUri}"
staticSubresourceResolution="true">
<jaxrs:serviceBeans>
<bean
class="com.company.productname.servicename.services.jaxrs.XYZResourceImpl"
/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="namespaceMap" ref="jsonNamespaceMap" />
</bean>
<bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
</jaxrs:providers>
</jaxrs:server>
You can read more about it here:
http://cxf.apache.org/docs/jax-rs-data-bindings.html
Best,
Christian
-----------------
Software Integration Specialist
Apache Camel committer: https://camel.apache.org/team
V.P. Apache Camel: https://www.apache.org/foundation/
Apache Member: https://www.apache.org/foundation/members.html
https://www.linkedin.com/pub/christian-mueller/11/551/642
On Fri, Jun 28, 2013 at 8:55 PM, ajaysam <[email protected]> wrote:
> I have a resource class with method defined like this
> @Produces({"application/json"})
> public Response getMessage(
> @PathParam("referenceTypeName") String name,
> @QueryParam("")
> ReferenceDataRequest query)
> {
> return null
> }
>
> Then i have applicationcontext.xml for camel as shown below:
>
> - <jaxrs:server id="restService" staticSubresourceResolution="true">
> - <jaxrs:serviceBeans>
> <ref bean="restResource" />
> </jaxrs:serviceBeans>
> - <jaxrs:providers>
> <ref bean="cxfJaxrsJsonProvider" />
> </jaxrs:providers>
> </jaxrs:server>
>
> <bean id="cxfJaxrsJsonProvider"
> class="org.apache.cxf.jaxrs.provider.json.JSONProvider" />
> <bean id="restResource" class="com.bms.web.HelloResource" />
>
>
>
>
> - <cxf:rsServer id="HelloRsServer" serviceClass="com.bms.web.HelloResource"
> loggingFeatureEnabled="true">
>
> </cxf:rsServer>
>
>
> - <camelContext xmlns="http://camel.apache.org/schema/spring">
>
> -
> - <route id="restToSoap" streamCache="true">
>
> <from uri="cxfrs://bean://HelloRsServer?bindingStyle=SimpleConsumer" />
> <log message="**************** Got ${headers}" />
> <log message="**************** Got Body 111 : ${body}" />
> <to uri="bean:reqProcessor" />
> <log message="**************** Got Headers 222 : ${headers}" />
> <log message="**************** Got Body 333 : ${body}" />
> <to uri="cxf:bean:target_hello" />
> <log message="**************** Got Body 444 : ${body}" />
> <to uri="bean:restRespProcessor" />
> <log message="**************** Got Body 555 : ${body}" />
>
> </route>
> </camelContext>
>
> My Processor is doing
>
> in.setbody(Response.ok(pojoobject).build());
>
> i m not getting json output..i m getting only xml output
>
>
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>