骆驼休息路线未在异常

时间:2018-04-06 07:02:50

标签: java apache-camel

我创建了一个带有以下异常处理的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中,我有一些验证表明需要两个查询参数keykeyTwokeyTwo不存在,所以我抛出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?在交易所设置一些房产?

1 个答案:

答案 0 :(得分:3)

好像你得到了23的枚举序号。你可以尝试替换枚举

org.apache.http.HttpStatus.SC_BAD_REQUEST 

而不是

org.springframework.http.HttpStatus.BAD_REQUEST

并查看它是否有任何区别