application/xml always works..
even if i am saying Produces json i still get output as xml




On Mon, Jul 1, 2013 at 12:01 PM, Sergey Beryozkin-3 [via Camel] <
ml-node+s465427n5735049...@n5.nabble.com> wrote:

> So, if you replace all of @Produces("application/json") with
> @Produces("application/xml")
>
> and do
>
> curl -HAccept:application/xml ...
>
> then it works ?
>
> Sergey
>
> On 01/07/13 16:40, ajaysam wrote:
>
> > I am sending the request through curl - it is setting Accept header as
> shown
> > below
> >
> > curl -HAccept:application/json
> >
> http://pocman2.nsp.stf.bms.com:8080/CXF_REST-0.0.1-SNAPSHOT/webservices/Hello/SilpaY
> >
> > Hello is the path to refer to resource class
> >
> > We are stuck in this project and any help will be appreciated.
> >
> > At high level this is what the project is about
> > 1. Camel exposes a REST endpoint thru CXFRS - this part works
> > 2. We get the request data in POJO format - camel makes SOAP call to
> another
> > web service passing this POJO
> > 3. We get the response back  from that service
> > 4. Response POJO needs to be converted to JSON
> >
> > As of now as a workaround in last step - we are using marshal step of
> camel
> > to explicitly convert from POJO to JSON - and that works - but we dont
> want
> > to do it that way
> >
> > We thought just doing return Response.ok(resp).build(); from Processor
> > should work
> >
> > We did all the configuration required as explained in article
> >
> > Our resource class says @Produces MediaType.Application_JSON
> > Also provided the json provider to cxfrs configuration
> >
> > Now what else needs to be done?
> >
> >
> > Can i send the application-context.xml file and Resource file to you
> > somehow..maybe i m missing something fundamental
> >
> >
> > attached is the xml section
> >
> > - <util:list id="jsonTypes">
> >    <value>application/json</value>
> >    </util:list>
> > - <bean id="cxfJaxrsJsonProvider"
> > class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
> >    <property name="namespaceMap" ref="jsonNamespaceMap" />
> >    <property name="produceMediaTypes" ref="jsonTypes" />
> >    </bean>
> >    <bean id="restResource" class="com.bms.web.HelloResource" />
> > - <jaxrs:server id="restService" staticSubresourceResolution="true">
> > - <jaxrs:serviceBeans>
> >    <ref bean="restResource" />
> >    </jaxrs:serviceBeans>
> > - <jaxrs:providers>
> >    <ref bean="cxfJaxrsJsonProvider" />
> >    <bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
> >    </jaxrs:providers>
> >    </jaxrs:server>
> >
> >   <bean id="restRespProcessor" class="com.bms.web.RESTResponseProcessor"
> />
> >
> > <cxf:rsServer id="HelloRsServer"
> serviceClass="com.bms.web.HelloResource"
> > loggingFeatureEnabled="true" />
> >
> > <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>
> >
> > the the response processor does this
> >
> > MessageContentsList msgList =
> (MessageContentsList)exchg.getIn().getBody();
> >
> > GetReferenceDataResponse resp = (GetReferenceDataResponse)
> msgList.get(0);
> > exchg.getOut().setBody(Response.ok(resp).build());
> >
> >
> > Resource File is
> >
> > @Path("/Hello")
> > @Produces({"application/json"})
> > public class HelloResource {
> > public HelloResource() {}
> >
> > @GET
> > @Path("/{referenceTypeName}")
> > //@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
> > @Produces({MediaType.APPLICATION_JSON})
> > public Response getMessage(
> > @PathParam("referenceTypeName") String name, @QueryParam("")
> > ReferenceDataRequest query) {
> > System.out.println("Hello, i am here !!! In HelloResource .......
> updated
> > 7.1.13");
> >
> >               return null;
> > }
> > }
> >
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967p5735046.html
>
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967p5735049.html
>  To unsubscribe from Camel CXFRS endpoint unable to produce JSON, click
> here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5734967&code=YWpheS5zYW1hbnRAZ21haWwuY29tfDU3MzQ5Njd8LTIxMTkyODAxMA==>
> .
> NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967p5735050.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to