Apache Camel-处理404错误的最佳方法是什么?

问题描述 投票:1回答:1

我正在将Apache Camel和Spring Boot和Jetty用作嵌入式服务器。

我有一个使用以下路由定义的RouteBuilder:

    onException(Exception.class)
             .handled(true)
             .process(new ErrorProcessor());

    rest("/mysvc/requests/{id}")
            .consumes("application/json")
            .produces("application/json")
            .get()
            .to("direct:processMyRequest");

    from("direct:processMyRequest")
            .log("Hello World");

[当我用GET /mysvc/requests/123之类的请求访问REST端点时,我得到一个有效的响应Hello World

[如果遇到错误的端点,例如GET /mysvc/requests(不提供ID),我只会得到带有以下响应正文的响应代码404

{
  url: "/mysvc/requests",
  status: "404",
  message: "Not Found",
  servlet: "CamelServlet",
}

我注意到onException子句没有捕获异常,也没有调用我的ErrorProcessor()。为什么会这样?

如何确保onException子句捕获此类错误?

java spring-boot rest servlets apache-camel
1个回答
0
投票

嗯,我想不仅没有调用您的onException,而且还没有调用您的REST路由,因为您的请求与路径不匹配(缺少ID)。

因此,我认为标准错误处理将返回404,因为没有无路可答复该请求

如果要捕获这些请求,则必须创建侦听/mysvc/requests的路由]。

© www.soinside.com 2019 - 2024. All rights reserved.