You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Balazs Szeti (JIRA)" <ji...@apache.org> on 2017/08/01 23:30:00 UTC
[jira] [Created] (CAMEL-11622) Rest-dsl doesn't support post()
endpoints with different request body types
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)