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 <ajay.sam...@gmail.com> 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.
>

Reply via email to