我有一个RESTful端点来创建用户:
POST /users/new
{
"id": 1,
"name": "John Doe"
}
Camel通过consumes()
神奇地处理请求(在Jackson的帮助下)。)将JSON对象的键转换为消息头,我访问该消息头以存储用户。
this.restConfiguration()
.component("netty4-http")
.bindingMode(RestBindingMode.json)
.contextPath("/").port(AbstractRestRoute.PORT)
.enableCORS(true)
.corsAllowCredentials(true)
.corsHeaderProperty("Access-Control-Allow-Headers", "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization");
this.rest.("/users")
.post("/new")
.consumes("application/json")
.produces("application/json")
.to("direct:rest:newuser");
这和预期的一样。但是,一个客户端设法将两个users对象传递给端点,如下所示:
POST /users/new
{
"id": 1,
"name": "John Doe"
}
{
"id": 2,
"name": "Jane Doe"
}
我希望Camel在这里抛出一个JSON解析错误。
但是:事实证明,应用程序服务的请求(!)并忽略第二个对象。因此,请求产生的结果与上面的结果相同。
我可以将Camel设置为严格的JSON解析模式来抛出错误吗?
1条答案
按热度按时间pbossiut1#
您可以自定义Camel内部用于绑定的JacksonMap器的配置。
尝试使用“json.in.*”属性来启用/禁用某些Jackson设置。也许有一个更严格的?