Wie Jetty Server für Java-Junit-Tests ausgeführt wird

Ich versuche, einen Integrationstest zu schreiben, um den Jetty-Server lokal hochzufahren, und dann den Client zu verwenden, um mit dem Rest-URI zu kommunizieren und die Geschäftslogik Downstream aufzurufen. Wenn ich jedoch meinen Jetty-Server starte, gibt er die Steuerung nicht frei, sodass mein Client nicht ausgeführt wird. Ich habe Threading verwendet, um meinen Steg in einem anderen Thread zu starten. Der Thread wird jedoch beendet, bevor mein Client anruft. Die Verbindung wurde abgelehnt. Wie kann ich vorgehen?

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage