class ApiServlet extends HttpServlet implements UserContext {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        try (
                MDC.MDCCloseable ignored = MDC.putCloseable("clientIp", req.getRemoteAddr());
                MDC.MDCCloseable ignored2 = MDC.putCloseable("requestPath", req.getContextPath() + req.getServletPath() + req.getPathInfo())
        ) {
            controllerException.verifyNoExceptions();
            invokeAction(new ServletHttpExchange(req, resp));
        }
    }

    public  ApiServlet();
    public  ApiServlet(Object controller);

}