Cómo ejecutar el servidor de jetty para las pruebas de Java Junit

Estoy tratando de escribir una prueba de integración para activar el servidor de muelle localmente y luego usar el cliente para comunicarme con el URI del resto y llamar a la lógica de negocios en sentido descendente. Sin embargo, cuando inicio mi servidor de muelle no renuncia al control, por lo que mi cliente no se ejecuta. Así que usé el subproceso para iniciar mi muelle en un subproceso diferente, sin embargo, el subproceso finaliza antes de que mi cliente llame, dice que la conexión se rechazó. ¿Algún enfoque que pueda tomar?

@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();
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta