Thanks, Claus! Now the following works for posting an object to the test uri http://localhost:8082/to/candidate/applyx. But is this the correct way? @Component public class RestRoute extends RouteBuilder {
@Override public void configure() throws Exception { HttpComponent http = getContext().getComponent("http4", HttpComponent.class); http.setAllowJavaSerializedObject(true); restConfiguration() .component("servlet") .producerComponent("http4") .host("localhost") .port(8082); Candidate c = new Candidate(); c.setFirstName("Joe"); c.setLastName("Blow"); from("timer://foo?repeatCount=1&delay=5s") .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setBody(c); }}) .marshal().json(JsonLibrary.Jackson) .setHeader(Exchange.CONTENT_TYPE, constant("application/json")) .to("rest:post:to/candidate/applyx") .log("body = ${body}"); } } On Thursday, June 14, 2018 5:40 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: Hi For binding to POJO classes you need to add camel-jackson to the classpath, and have either JAXB or Jackson annotations on the class as well. On Wed, Jun 13, 2018 at 7:34 PM, Roman Vottner <r...@gmx.at> wrote: > Can you try to define > > .bindingMode(RestBindingMode.json) > > to your restConfiguration or post() definition? According to the docs > (http://camel.apache.org/rest-dsl.html) it should enable conversion to/from > JSON to POJO which according your your posted logs seem to fail. > > HTH, > roman > > >> Am 13.06.2018 um 15:10 schrieb Steve Hiller <sh...@bellsouth.net>: >> >> No responses -- Am I doing this completely wrong? >> >> On Friday, June 8, 2018 6:07 PM, Steve Hiller <sh...@bellsouth.net> wrote: >> >> >> Hi All, >> >> I recently watched Claus' talk called "Developing cloud-ready Camel >> microservices". I am trying to do the following: >> >> rest("/candidate") >> .post("applyx") >> .consumes(MediaType.APPLICATION_JSON_VALUE) >> .type(Candidate.class) >> .to("direct:passwordlessApply") >> ; >> >> >> from("direct:passwordlessApply") >> .setExchangePattern(ExchangePattern.InOnly) >> .to("http4:{{service:candidate-service}}/api/candidate/applyx") >> ; >> >> >> where {{service:candidate-service}} also consumes the Candidate class. >> >> However, I am seeing the following exception: >> >> org.apache.camel.InvalidPayloadException: No body available of type: >> java.io.InputStream but has value: >> com.rusa.adapter.mobile.candidate.domain.Candidate@58af86ed... >> Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type >> converter available to convert from type: >> com.rusa.adapter.mobile.candidate.domain.Candidate to the required type: >> java.io.InputStream with value >> com.rusa.adapter.mobile.candidate.domain.Candidate@58af86ed... >> Caused by: org.apache.camel.NoTypeConversionAvailableException: No type >> converter available to convert from type: >> com.rusa.adapter.mobile.candidate.domain.Candidate to the required type: >> java.io.InputStream with value >> com.rusa.adapter.mobile.candidate.domain.Candidate@58af86ed >> >> Any help is most appreciated. >> >> Thanks, >> >> Steve >> >> > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2