Jetty и JUnit - отправка ответов на заглушки по http

Мне нужно отправить ответ заглушки через http запрашивающему клиенту от Jetty. Он работает, когда я запускаю тест Junit независимо, подразумевает, что я получаю правильный XML-ответ... но не получается, когда я запускаю ту же самую вещь из maven. Я вижу ошибку "java.net.SocketException: Unexpected end of file from serverЯ все перепробовал! Пожалуйста, помогите!

Вот мой код -

Junit (при запуске как тест Junit - работает)

public class MyTest {

@Test
    public void testGetOpenLots() throws Exception {

        // create fixture
        MyService fixture = new MyService();

        // create jetty server instance
        Server server = new Server(8080);

        // set a handler
        server.setHandler(new HelloHandler());

        // set shutdown conditions
        // server.setStopAtShutdown(true);

        // start server
        server.start();

        // invoke operation
        MyResponse result = fixture.getWeather(someDummyRequest);

        assertNotNull(result);
    }

}

Где-то внизу, внутри getWeather(), я создаю объект URL и передаю URL http://localhost:8080 и отправьте запрос на этот URL. На этом этапе я ожидаю, что метод дескриптора HelloHandler будет вызван и запишет этот фиктивный XML-ответ в stream, а метод getWeather () получит ответ.

Вот обработчик:

public class HelloHandler extends AbstractHandler {

 public void handle(String target, Request baseRequest,
            HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        response.setContentType("application/xml;charset=utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        baseRequest.setHandled(true);
        response.getWriter().println("<result>a simple response</result>");

    }

}

Когда я запускаю ту же самую вещь из maven, она выдает ошибку, упомянутую выше. Что я делаю неправильно?

1 ответ

Вместо того, чтобы реализовывать свой собственный обработчик причала, вы можете попробовать Jadler ( http://jadler.net/), библиотеку http-заглушки / издевательства, над которой я работал некоторое время.

Другие вопросы по тегам