Я пытаюсь вставить Jetty 8 (8.1.18.v20150929) в приложение Java (jdk1.7.0_67). У меня есть следующий код:Веб-сервер встроенного Jetty не работает, обработчик не вызван
public static final String HTTP_PATH = "/session";
public static final int HTTP_PORT = 9995;
// Open the HTTP server for listening to requests.
logger.info("Starting HTTP server, Port: " + HTTP_PORT + ", Path: "
+ "/session");
httpServer = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(HTTP_PORT);
connector.setHost("localhost");
httpServer.addConnector(connector);
TestHttpHandler handler = new TestHttpHandler(this);
ContextHandler ch = new ContextHandler();
ch.setContextPath(HTTP_PATH);
ch.setHandler(handler);
httpServer.setHandler(ch);
try {
httpServer.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Мой обработчик является довольно основным, как тест:
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
logger.debug("Handling");
}
Если я запустить приложение, а затем использовать CURL для отправки запроса GET на http://localhost:9995/session, то она возвращает 200, но нет отладочного вывода.
Если у меня есть http://localhost:9995/session2, я получаю ошибку 404.
Я читал много примеров в Интернете, но по какой-то причине я не могу заставить обработчик нормально работать. Я делаю что-то неправильно? Спасибо
Что такое значение 'HTTP_PATH'? –
О, спасибо, я отредактировал источник примера. Это «/ session». –
Ваш пример кода работает как есть. В этом нет ничего плохого. –