camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Balazs Szeti (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-11622) Rest-dsl doesn't support post() endpoints with different request body types
Date Tue, 01 Aug 2017 23:30:00 GMT
Balazs Szeti created CAMEL-11622:
------------------------------------

             Summary: Rest-dsl doesn't support post() endpoints with different request body
types
                 Key: CAMEL-11622
                 URL: https://issues.apache.org/jira/browse/CAMEL-11622
             Project: Camel
          Issue Type: Bug
          Components: rest
    Affects Versions: 2.18.1
         Environment: Spring-Boot with Tomcat8 container
            Reporter: Balazs Szeti


The rest-dsl doesn't support two post() endpoints with different request body types.

restConfiguration()
  .component("servlet")
  .contextPath("/api")
  .bindingMode(RestBindingMode.json)
;

rest("/user")
  .post("/").type(UserPojo.class)
      .route()
      .log("Name: ${body.name}")
      .endRest()
;

rest("/country")
  .post("/").type(CountryPojo.class)
      .route()
      .log("Name: ${body.country}")
      .endRest()
;

Both endpoints (/api/user, /api/country) tries to unmarshall the post body to CountryPojo
and a JsonProcessingException is thrown when a UserPojo json is sent to /user.
The problem is that they share one JascksonDataFormat instance registered with name "json-jackson"
and the RestDefinition.type() sets the JascksonDataFormat.unmarshalType so at the end both
post() endpoints will try to unmarshall to the same class.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message