* @param context The context
* @param statusCode The 4xx status code that explains the problem
*/
@Override
public void error(Context context, int statusCode) {
HttpResponseStatus status = HttpResponseStatus.valueOf(statusCode);
Request request = context.getRequest();
LOGGER.error(statusCode + " client error for request to " + request.getRawUri());
context.getResponse().status(statusCode);
new ErrorPageRenderer() {
protected void render() {
render(context, status.reasonPhrase(), w ->
messages(w, "Client Error", () ->
meta(w, m -> m
.put("URI:", request.getRawUri())
.put("Method:", request.getMethod().getName())
.put("Status Code:", status.code())
.put("Phrase:", status.reasonPhrase())
)
)
);
}
};