Hi
I am trying to expose a rest endpoint from camel. Below is the route.
*package com.tgt.worker.routes;
import com.tgt.student.StudentPojo;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jackson.JacksonDataFormat;
import org.apache.camel.model.rest.RestBindingMode;
import org.restlet.data.MediaType;
import org.springframework.stereotype.Component;
@Component
public class RestDSL extends RouteBuilder{
@Override
public void configure() throws Exception {
JacksonDataFormat student = new
JacksonDataFormat(StudentPojo.class);
restConfiguration().component("restlet").host("localhost").port(1212)
.bindingMode(RestBindingMode.auto)
.dataFormatProperty("prettyPrint", "true");
rest("/travel/")
.produces(MediaType.APPLICATION_JSON.toString())
.consumes(MediaType.APPLICATION_JSON.toString())
.put().to("direct:addStudents");
from("direct:addStudents")
.log("Received data ${body}")
.convertBodyTo(String.class)
.unmarshal(student)
.transform(constant("done"))
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200))
.log("RETURNING ${body}")
.end();
}
}*
Unfortunately, when i push some json from httpclient, I see that the double
quotes on fields get disappeared when it comes to route. And Jackson throws
an error. Can someone help me understand why this quotes disappear? Find the
logs below.
*
2016-12-19 22:09:48 INFO com.tgt.worker.WorkerApplication - Started
WorkerApplication in 5.279 seconds (JVM running for 5.681)
2016-12-19 22:09:58 INFO route2 - Received data
{students={@expansions=demographics, addresses, alerts, phones,
school_enrollment, ethnicity_race, contact, contact_info,
initial_enrollment, schedule_setup, fees, lunch,
@extensions=activities,c_studentlocator,u_students_extension,u_bus,
student=[{id=2, local_id=3, student_username=ag1student1,
name={first_name=Brandon, last_name=Adair}, demographics={gender=M,
birth_date=1998-12-13, projected_graduation_year=2016},
addresses={physical={street=1337 Greymont Ave, city=Jackson,
state_province=MS, postal_code=39202}, mailing={street=1337 Greymont Ave,
city=Jackson, state_province=MS, postal_code=39202}},
alerts={legal={description=Divorced parents only mom should pick up,
expires_date=NEVER_EXPIRES}, discipline={description=Fighting is a problem,
expires_date=NEVER_EXPIRES}, medical={description=Allergic to peanuts,
expires_date=NEVER_EXPIRES}, other={description=Brandon needs to go to study
hall during 3rd period., expires_date=NEVER_EXPIRES}},
phones={main={number=1-555-555-3612}}, school_enrollment={enroll_status=A,
enroll_status_description=Active, enroll_status_code=0, grade_level=12,
entry_date=2015-05-25, exit_date=2016-05-22, school_number=100, school_id=3,
entry_code=A1, entry_comment=promoted, track=A,
full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=B},
contact={emergency_contact_name1=Jonathan Mccarthy,
emergency_phone1=1-555-555-6049, emergency_phone2=1-555-555-2202,
[email protected], mother=Willima Adair,
father=Adam Adair, doctor_name=Dr. Tom Smith, doctor_phone=1-555-555-2035},
contact_info={[email protected]}}, {id=3, local_id=4,
student_username=ag1student2, name={first_name=Corby, last_name=Adams},
demographics={gender=M, birth_date=2000-10-02,
district_entry_date=2014-10-12, projected_graduation_year=2018},
addresses={physical={street=4658 Norway Dr, city=Jackson, state_province=MS,
postal_code=39206}, mailing={street=4658 Norway Dr, city=Jackson,
state_province=MS, postal_code=39206}}, alerts={legal={description=Lives
with family friends, expires_date=NEVER_EXPIRES},
discipline={description=Not allowed in Media Center,
expires_date=NEVER_EXPIRES}, medical={description=Allergic to peanuts,
expires_date=NEVER_EXPIRES}, other={description=Needs to submit birth
certificate to office!, expires_date=NEVER_EXPIRES}},
phones={main={number=1-555-555-2892}}, school_enrollment={enroll_status=A,
enroll_status_description=Active, enroll_status_code=0, grade_level=10,
entry_date=2015-05-25, exit_date=2016-05-22, school_number=100, school_id=3,
entry_code=A1, entry_comment=promoted, full_time_equivalency={fteid=854,
name=Full Time}}, ethnicity_race={scheduling_reporting_ethnicity=B},
contact={emergency_contact_name1=Donovan Bowen,
emergency_phone1=1-555-555-6052, emergency_phone2=1-555-555-1854,
[email protected], mother=Lori Adams, father=Jacob
Adams, doctor_name=Dr. Barbara Seidl, doctor_phone=1-555-555-3266},
contact_info={[email protected]}}, {id=4, local_id=5,
student_username=ag1student4, name={first_name=Emmy, last_name=Ahlberg},
demographics={gender=F, birth_date=2000-11-21,
district_entry_date=2014-10-12, projected_graduation_year=2018},
addresses={physical={street=638 Belvedere Rd, city=Jackson,
state_province=MS, postal_code=39206, grid_location=Lat: 32.3573978, Lng:
-90.163067}, mailing={street=638 Belvedere Rd, city=Jackson,
state_province=MS, postal_code=39206}}, alerts={legal={description=Lives
with family friends, expires_date=NEVER_EXPIRES},
medical={description=Spleen injured in Rugby. No sports for six months,
expires_date=NEVER_EXPIRES}, other={description=Must take bus #4 all week.,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-3558}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=10, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=B},
contact={emergency_contact_name1=Nicholas Brannan,
emergency_phone1=1-555-555-6055, emergency_phone2=1-555-555-2688,
[email protected], mother=Monica Ahlberg,
father=Kevin Ahlberg, doctor_name=Dr. Barbara Seidl,
doctor_phone=1-555-555-2035},
contact_info={[email protected]}}, {id=5, local_id=6,
student_username=ag1student5, name={first_name=Andy, middle_name=G,
last_name=Aikinson}, demographics={gender=M, birth_date=1997-06-27,
projected_graduation_year=2016}, addresses={physical={street=732 Lindsey Dr,
city=Jackson, state_province=MS, postal_code=39209, grid_location=Lat:
32.3092896, Lng: -90.2372855}, mailing={street=732 Lindsey Dr, city=Jackson,
state_province=MS, postal_code=39209}},
alerts={medical={description=Allergic to Peanuts,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-3552}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=12, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=H},
contact={emergency_contact_name1=Joshua BergStrom,
emergency_phone1=1-555-555-2074, emergency_phone2=1-555-555-3770,
[email protected], mother=Katie Aiello,
father=Roberto Aiello, doctor_name=Dr. Barbara Seidl,
doctor_phone=1-555-555-4557},
contact_info={[email protected]}}, {id=6, local_id=7,
student_username=ag1student6, name={first_name=Scott, last_name=Alfonso},
demographics={gender=M, birth_date=1999-11-17,
projected_graduation_year=2017}, addresses={physical={street=246 Sunny Lane
Dr, city=Jackson, state_province=MS, postal_code=39204, grid_location=Lat:
32.273518, Lng: -90.2124748}, mailing={street=246 Sunny Lane Dr,
city=Jackson, state_province=MS, postal_code=39204}},
alerts={discipline={description=Uses inappropriate language,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-2569}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=11, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=C},
contact={[email protected], mother=Christina
Allen, father=Daniel Allen, doctor_name=Dr. Wendy Jackson, MD,
doctor_phone=1-555-555-3266},
contact_info={[email protected]}}, {id=7, local_id=8,
student_username=ag1student7, name={first_name=Victor, middle_name=C,
last_name=Allen}, demographics={gender=M, birth_date=1999-01-16,
projected_graduation_year=2017}, addresses={physical={city=Jackson,
state_province=MS, postal_code=39209}, mailing={street=1555 Burton St,
city=Jackson, state_province=MS, postal_code=39209}},
alerts={legal={description=Lives with family friends,
expires_date=NEVER_EXPIRES}, medical={description=Allergic to bee stings,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-3567}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=11, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=I},
contact={emergency_contact_name1=Daniel Atwood,
emergency_phone1=1-555-555-6237, emergency_phone2=1-555-555-1782,
[email protected], mother=Mary Allan,
father=Andrew Allan, doctor_name=Dr. Robert Watson, MD,
doctor_phone=1-555-555-2655},
contact_info={[email protected]}}, {id=8, local_id=9,
student_username=ag1student8, name={first_name=Alfred, middle_name=P,
last_name=Allred}, demographics={gender=M, birth_date=1999-05-02,
projected_graduation_year=2018}, addresses={physical={street=866 Serville
Dr, city=Jackson, state_province=MS, postal_code=39206, grid_location=Lat:
32.3689582, Lng: -90.156591}, mailing={street=866 Serville Dr, city=Jackson,
state_province=MS, postal_code=39206}},
alerts={discipline={description=Please be aware of this student. Thinks that
being on the football team should get him by, but Asst. Principal Zorr knows
better. Should you have any problems, please contact Asst. Principal Zorr,
expires_date=NEVER_EXPIRES}, medical={description=Diabetic - Insulin
available from nurse, expires_date=NEVER_EXPIRES}},
phones={main={number=1-555-555-2209}}, school_enrollment={enroll_status=A,
enroll_status_description=Active, enroll_status_code=0, grade_level=10,
entry_date=2015-05-25, exit_date=2016-05-22, school_number=100, school_id=3,
entry_code=A1, entry_comment=promoted, full_time_equivalency={fteid=854,
name=Full Time}}, ethnicity_race={scheduling_reporting_ethnicity=H},
contact={emergency_contact_name1=Michael Garner,
emergency_phone1=1-555-555-6071, emergency_phone2=1-555-555-2651,
[email protected], mother=Kathryn Allred,
father=Payton Allred, doctor_name=Dr. Robert Watson, MD,
doctor_phone=1-555-555-2655},
contact_info={[email protected]}}, {id=9, local_id=10,
student_username=ag1student9, name={first_name=Christopher, middle_name=N,
last_name=Allred}, demographics={gender=M, birth_date=1999-10-21,
projected_graduation_year=2017}, addresses={physical={street=1134 Langley
Ave, city=Jackson, state_province=MS, postal_code=39204, grid_location=Lat:
32.2879721, Lng: -90.1958322}, mailing={city=Jackson, state_province=MS,
postal_code=39204}}, alerts={medical={description=allergic to homework,
expires_date=NEVER_EXPIRES}, other={description=Walks home after school.,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-3555}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=11, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=I},
contact={emergency_contact_name1=Eric Webber,
emergency_phone1=1-555-555-1695, emergency_contact_name2=Israel Turner,
emergency_phone2=1-555-555-3391, [email protected],
mother=Wendy, Allred, father=August Allred, doctor_name=Dr. Tom Smith,
doctor_phone=1-555-555-2217},
contact_info={[email protected]}}, {id=10,
local_id=11, student_username=ag1student10, name={first_name=Jacee,
middle_name=L, last_name=Allred}, demographics={gender=F,
birth_date=1998-03-28, projected_graduation_year=2016},
addresses={physical={street=175 Kimbrough Dr, city=Jackson,
state_province=MS, postal_code=39204, grid_location=Lat: 32.2694115, Lng:
-90.2161041}, mailing={street=175 Kimbrough Dr, city=Jackson,
state_province=MS, postal_code=39204}}, alerts={legal={description=Dad has a
restraining order., expires_date=NEVER_EXPIRES},
discipline={description=Member of the student citizenship panel.,
expires_date=NEVER_EXPIRES}, medical={description=Prone to seizures,
expires_date=NEVER_EXPIRES}}, phones={main={number=1-555-555-1726}},
school_enrollment={enroll_status=A, enroll_status_description=Active,
enroll_status_code=0, grade_level=12, entry_date=2015-05-25,
exit_date=2016-05-22, school_number=100, school_id=3, entry_code=A1,
entry_comment=promoted, full_time_equivalency={fteid=854, name=Full Time}},
ethnicity_race={scheduling_reporting_ethnicity=H},
contact={emergency_contact_name1=Isaac Crosby,
emergency_phone1=1-555-555-6076, emergency_phone2=1-555-555-1967,
[email protected], mother=Char Allred,
father=Willis Allred, doctor_name=Dr. Barbara Seidl,
doctor_phone=1-555-555-2035},
contact_info={[email protected]}}, {id=11, local_id=12,
student_username=ag1student11, name={first_name=Harold, last_name=Almanza},
demographics={gender=M, birth_date=1999-08-19,
projected_graduation_year=2017}, addresses={physical={street=264 Culley Dr,
city=Jackson, state_province=MS, postal_code=39206, grid_location=Lat:
32.3779072, Lng: -90.1591076}, mailing={street=264 Culley Dr, city=Jackson,
state_province=MS, postal_code=39206}}, alerts={legal={description=Lives
with family friends, expires_date=NEVER_EXPIRES},
medical={description=Allergic to Peanuts - Contact School Nurse Immediately
if ingested, expires_date=NEVER_EXPIRES}},
phones={main={number=1-555-555-3553}}, school_enrollment={enroll_status=A,
enroll_status_description=Active, enroll_status_code=0, grade_level=11,
entry_date=2015-05-25, exit_date=2016-05-22, school_number=100, school_id=3,
entry_code=A1, entry_comment=promoted, full_time_equivalency={fteid=854,
name=Full Time}}, ethnicity_race={scheduling_reporting_ethnicity=H},
contact={emergency_contact_name1=Gregory Stewart,
emergency_phone1=1-555-555-1742, emergency_phone2=1-555-555-3438,
[email protected], mother=Rebecca Almanza,
father=Joseph Almanza, doctor_name=Dr. Robert Watson, MD,
doctor_phone=1-555-555-2655},
contact_info={[email protected]}}]}}
2016-12-19 22:09:58 ERROR o.a.c.processor.DefaultErrorHandler - Failed
delivery for (MessageId: ID-9801a7a2f745-55399-1482165586877-0-1 on
ExchangeId: ID-9801a7a2f745-55399-1482165586877-0-2). Exhausted after
delivery attempt: 1 caught: com.fasterxml.jackson.core.JsonParseException:
Unexpected character ('s' (code 115)): was expecting double-quote to start
field name
at [Source: java.io.ByteArrayInputStream@30618594; line: 1, column: 3]
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor
Elapsed (ms)
[route1 ] [route1 ]
[http://localhost:1212/travel?restletMethods=PUT
] [ 97]
[route1 ] [restBinding1 ] [
] [ 42]
[route1 ] [route1 ] [direct:addStudents
] [ 43]
[route2 ] [log1 ] [log
] [ 6]
[route2 ] [convertBodyTo1 ] [convertBodyTo[java.lang.String]
] [ 1]
[route2 ] [unmarshal1 ]
[unmarshal[org.apache.camel.model.DataFormatDefinition@7550941]
] [ 36]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('s'
(code 115)): was expecting double-quote to start field name
at [Source: java.io.ByteArrayInputStream@30618594; line: 1, column: 3]
at
com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1581)
at
com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:533)
at
com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:462)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleOddName(UTF8StreamJsonParser.java:2003)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parseName(UTF8StreamJsonParser.java:1650)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:740)
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3798)
at
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2908)
at
org.apache.camel.component.jackson.JacksonDataFormat.unmarshal(JacksonDataFormat.java:172)
at
org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:69)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
at
org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at
org.apache.camel.component.restlet.RestletConsumer$1.handle(RestletConsumer.java:68)
at
org.apache.camel.component.restlet.MethodBasedRouter.handle(MethodBasedRouter.java:54)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:639)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:639)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at
org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
at org.restlet.Component.handle(Component.java:408)
at org.restlet.Server.handle(Server.java:507)
at
org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)
at
org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)
at
org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:64)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
at
sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2016-12-19 22:09:58 INFO org.restlet.Component.LogService - 2016-12-19
22:09:58 0:0:0:0:0:0:0:1 - - 1212 PUT /travel/
- 500 4576 19945 106
http://localhost:1212 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
-*
-----
Reji Mathews
Sr. Developer - Middleware Integration / SOA ( Open Source - Apache Camel &
Jboss Fuse ESB | Mule ESB )
LinkedIn - http://in.linkedin.com/pub/reji-mathews/31/9a2/40a
Twitter - reji_mathews
--
View this message in context:
http://camel.465427.n5.nabble.com/Json-format-disturbed-Rest-DSL-Jackson-tp5791716.html
Sent from the Camel - Users mailing list archive at Nabble.com.