Я использую 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");
Когда я нажимаю на конечную точку REST запрос типа GET /mysvc/requests/123
, я получаю верный ответ Hello World
назад .
В случае, когда я попал в неверную конечную точку, такую как GET /mysvc/requests
(без предоставления идентификатора), я просто получаю код ответа 404
со следующим телом ответа:
{
url: "/mysvc/requests",
status: "404",
message: "Not Found",
servlet: "CamelServlet",
}
Я заметил, что в предложении onException
нет исключений, и мой ErrorProcessor()
также не вызывается. Почему это так?
Как я могу убедиться, что такие ошибки отлавливаются предложением onException
?