WireMock: не работает перехват ошибок 404
Всем привет! В WireMock (http://wiremock.org/) есть механизм перехвата ошибок в случае не нахождения сопоставлений. Например, если есть заглушка:
{
"id" : "a8d2a1h1-4312-431q-32gf-5432ad1dg1i4",
"name" : "test",
"request" : {
"url" : "/test",
"method" : "GET",
"headers" : {
"test-header" : {
"equalTo" : "test"
}
}
},
...
}
То тут, если обратиться к WireMock по адресу /test, не вернётся эта заглушка и будет 404_NOT_FOUND, потому что стоит сопоставление, что заголовок test-header должен быть равен значению test. Если он будет равен test — всё вернётся нормально.
Проблема в том, что у WireMock есть механизм, который выводит нечто подобное в консоль в случае, если было обращение по правильному URL, но какие то параметры не совпали (или может быть другой алгоритм, но в любом случае интересует это сообщение):
18:46:10.046 [qtp234874319-17] ERROR WireMock -
Request was not matched
=======================
-----------------------------------------------------------------------------------------------------------------------
| Closest stub | Request |
-----------------------------------------------------------------------------------------------------------------------
|
GET | GET
/filter | /filter
|
X-My-Header: original value | X-My-Header: modified value <<<<< Header does not match
|
|
-----------------------------------------------------------------------------------------------------------------------
18:46:10.123 [qtp1758798120-33] ERROR WireMock - No response could be served as there are no stub mappings in this WireMock instance.
Собственно, оно у меня не выводиться и как его включить нет ни малейшего понятия. WireMock я использую не из коробки, а сделал собственную надстройку над ним с помощью Spring Boot и классов com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet — в общем, у меня всё на сервлетах.
Возможно, нужно как то сконфигурировать его правильно, чтобы было такое сообщение при 404_NOT_FOUND.
Опытным путём выяснил, что за эту обработку ошибок возможно отвечает com.github.tomakehurst.wiremock.jetty9.NotFoundHandler (https://github.com/wiremock/wiremock/blob/master/src/main/java/com/github/tomakehurst/wiremock/jetty9/NotFoundHandler.java)