我创建了一个带有以下异常处理的camel路由:
onException(BadRequestException.class)
.handled(true)
.process(exchange -> {
System.out.println("Reached processor");
System.out.println(exchange.getIn().getBody(String.class));
})
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(HttpStatus.BAD_REQUEST));
我向http://localhost:8080/services/rest/endpoint?key=value
在bean中,我有一些验证表明需要两个查询参数key
和keyTwo
。 keyTwo
不存在,所以我抛出BadRequestException
:
public void assertRequiredParametersPresentOnExchange() throws BadRequestException {
try {
requiredParameters.stream()
.forEach(p -> assertNotNull(p));
} catch (IllegalArgumentException e) {
throw new BadRequestException(e.getMessage());
}
}
当我执行URL时,我可以看到上面的异常处理程序的Reached processor
输出,但是没有任何反应。邮差等待回复约60秒,然后给我状态码23。
我在这里缺少什么? MEP?在交易所设置一些房产?
答案 0 :(得分:3)
好像你得到了23的枚举序号。你可以尝试替换枚举
org.apache.http.HttpStatus.SC_BAD_REQUEST
而不是
org.springframework.http.HttpStatus.BAD_REQUEST
并查看它是否有任何区别