You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ajaysam <aj...@gmail.com> on 2013/08/19 20:02:53 UTC

Re: Camel CXFRS endpoint unable to produce JSON

Hi

Just wanted to follow up on this thread. After long time i managed to look
at this pending issue.
You had pointed out that Accept was showing "application xml" - we
recreated this problem and this time we are asking for json, log is also
showing that and camel with CXFRS configuration is still spitting out XML..

new log is attached...

Regards
Ajay


On Sun, Jul 7, 2013 at 2:15 PM, Sergey Beryozkin-3 [via Camel] <
ml-node+s465427n5735246h29@n5.nabble.com> wrote:

> I can see the following:
>
> "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
>
> No JSON is requested
>
> Cheers, Sergey
>
> On 05/07/13 21:45, ajaysam wrote:
>
> > log file is attached
> >
> >
> >
> >
> > On Fri, Jul 5, 2013 at 12:59 PM, Raul Kripalani [via Camel] <
> > [hidden email] <http://user/SendEmail.jtp?type=node&node=5735246&i=0>>
> wrote:
> >
> >> Hi,
> >>
> >> Can you place a log endpoint with the showAll option set to true just
> >> after
> >> this line?
> >>
> >>        <log message="**************** Got Body 555 : ${body}" />
> >>
> >> e.g.  <to uri="log:TEST?showAll=true" />.
> >>
> >> I want to see exactly what the route returns to the CXF stack.
> >>
> >> Thanks,
> >>
> >> *Raúl Kripalani*
> >> Enterprise Architect, Open Source Integration specialist, Program
> >> Manager | Apache
> >> Camel Committer
> >> http://about.me/raulkripalani |
> http://www.linkedin.com/in/raulkripalani
> >> http://blog.raulkr.net | twitter: @raulvk
> >>
> >> On Fri, Jul 5, 2013 at 5:18 PM, ajaysam <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=5735205&i=0>>
> >> wrote:
> >>
> >>> Attached are two projects - both are maven projects
> >>>
> >>>
> >>> One is camel project that makes a call to a service which is another
> >>> project
> >>> The servvice that Camel calls is a stubbed version of real service.
> >>>
> >>> The url to invoke the camel project is
> >>>
> >>> Testing through Curl :
> C:\curl-7.30.0-ssl-sspi-zlib-static-bin-w32>curl
> >>> -HAccept:application/json
> >>>
> >>
> http://localhost:8080/CamelCXFREST-0.0.1-SNAPSHOT/webservices/Hello/States
> >>>
> >>>
> >>> And the output is XML - but we were expecting json.
> >>>
> >>> Any help or tips or lead to debug this problem will be help us a lot.
> >>> I am trying to push Camel in my organization and these small issues
> >> become
> >>> a show stopper for us.
> >>>
> >>> As of now the way we got it working - temporary soln - is we added a
> >>> marshal step after response processor that uses json library to
> convert
> >> to
> >>> JSON- this is explicit step done by camel - which we dont want to- we
> >>> wanted Camel taking CXF help / configuration to understand that it
> needs
> >>> json output and convert it - rather than Camel bypassing CXF. Anyway
> we
> >> did
> >>> that on our project - you will not see that last step in this project
> >>> Thanks
> >>> Ajay
> >>>
> >>>
> >>>
> >>> On Tue, Jul 2, 2013 at 3:37 PM, Christian Mueller [via Camel] <
> >>> [hidden email] <http://user/SendEmail.jtp?type=node&node=5735205&i=1>>
>
> >> wrote:
> >>>
> >>>> Sure, this will help to digging into the issue.
> >>>>
> >>>> Best,
> >>>> Christian
> >>>>
> >>>> Sent from a mobile device
> >>>> Am 02.07.2013 20:19 schrieb "ajaysam" <[hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=5735092&i=0>>:
> >>>>
> >>>>
> >>>>> Can i send you my maven projects ?
> >>>>>
> >>>>> you can take a look at it high level and see if i m really missing
> >>>>> something basic
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Mon, Jul 1, 2013 at 4:00 PM, Sergey Beryozkin-3 [via Camel] <
> >>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=5735092&i=1>>
>
> >>
> >>   > > wrote:
> >>>>>
> >>>>>> This is bizarre...Can you please double check the custom code you
> >> may
> >>>>>> have and see if "application/xml" is 'hiding somewhere' ? Can you
> >> do
> >>> a
> >>>>>> sanity check and confirm it is this endpoint which is being
> >> invoked
> >>>>>> after all ?
> >>>>>> Any chance you can attach a working route (test) to JIRA ?
> >>>>>>
> >>>>>> Cheers, Sergey
> >>>>>>
> >>>>>> On 01/07/13 17:19, ajaysam wrote:
> >>>>>>
> >>>>>>> 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]
> >> <
> >>>>>>> [hidden email] <
> >>> http://user/SendEmail.jtp?type=node&node=5735057&i=0>>
> >>>>
> >>>>   > > 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<
> >>>>>>
> >>>>>>>> .
> >>>>>>>> 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.
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Sergey Beryozkin
> >>>>>>
> >>>>>> Talend Community Coders
> >>>>>> http://coders.talend.com/
> >>>>>>
> >>>>>> Blog: http://sberyozkin.blogspot.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-tp5734967p5735057.html
> >>>>>>   To unsubscribe from Camel CXFRS endpoint unable to produce JSON,
> >>>> click
> >>>>>> here<
> >>>>>>
> >>>>>> .
> >>>>>> 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-tp5734967p5735089.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-tp5734967p5735092.html
> >>>>   To unsubscribe from Camel CXFRS endpoint unable to produce JSON,
> >> click
> >>>> here<
> >>>>
> >>>> .
> >>>> 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
> >>>>
> >>>>
> >>>
> >>>
> >>> CamelCXFREST.zip (609K) <
> >>>
> http://camel.465427.n5.nabble.com/attachment/5735203/0/CamelCXFREST.zip>
> >>
> >>> RDMReferenceDataService.zip (604K) <
> >>>
> >>
> http://camel.465427.n5.nabble.com/attachment/5735203/1/RDMReferenceDataService.zip
> >>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context:
> >>>
> >>
> http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967p5735203.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-tp5734967p5735205.html
> >>   To unsubscribe from Camel CXFRS endpoint unable to produce JSON,
> click
> >> here<
> >> .
> >> 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>
>
> >>
> >
> >
> > systemout.log (11K) <
> http://camel.465427.n5.nabble.com/attachment/5735217/0/systemout.log>
> >
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Camel-CXFRS-endpoint-unable-to-produce-JSON-tp5734967p5735217.html
>
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>
> --
> Sergey Beryozkin
>
> Talend Community Coders
> http://coders.talend.com/
>
> Blog: http://sberyozkin.blogspot.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-tp5734967p5735246.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>
>


systemout.log (19K) <http://camel.465427.n5.nabble.com/attachment/5737527/0/systemout.log>




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