Como executar o servidor jetty para testar o java junit
Estou tentando escrever um teste de integração para ativar o servidor jetty localmente e, em seguida, usar o cliente para se comunicar com o restante URI e chamar a lógica de negócios a jusante. No entanto, quando inicio meu servidor jetty, ele não renuncia ao controle e, portanto, meu cliente não é executado. Por isso, usei o encadeamento para iniciar meu jetty em um encadeamento diferente; no entanto, o encadeamento termina antes da ligação do cliente, diz que a conexão foi recusada. Alguma abordagem que eu possa adotar?
@Test
public void testPerform() {
final JettyServer jettyServer = JettyServer.create();
jettyServer.buildJettyServer(ServletContextHandler.SESSIONS, "/", 8080, TestResource.class);
Runnable runnable = new Runnable()
{
@Override
public void run()
{
jettyServer.start();
}
};
new Thread(runnable).start();
final javax.ws.rs.client.Client client = ClientBuilder.newClient();
final Response response = client.target("http://localhost:8080/test").request().post(Entity.text(""));
jettyServer.stop();
}