Le démarrage et l'arrêt d'un serveur Jetty entre JUnit tests

Je suis en train de simuler les essais de divers enchaînements de mon programme, la configuration d'un serveur Jetty dans un @Before méthode et la fermeture dans un @After.

Mon premier test s'exécuter correctement, mais lors de la tentative pour publier des données dans les tests suivants com.sun.jersey.api.client.ClientHandlerException: java.net.SocketException: Software caused connection abort: recv failed se produit. Est-il possible que je peux obtenir mon Serveur (et le Client?) pour arrêter proprement entre les tests?

Mon Avant et Après le code est comme suit:

@Before
public void startServer() {
    try {
        server = new Server(8080);
        ServletContextHandler root = new ServletContextHandler(server, "/ingest", ServletContextHandler.SESSIONS);

        root.addServlet(new Servlet(), "/*");

        server.start();

        client = new Client();
        client.setChunkedEncodingSize(16 * 1024);

        FileInputStream stream = new FileInputStream(testFile);
        try {
            client.resource(uri).type(MediaType.APPLICATION_OCTET_STREAM).post(stream);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            Closeables.closeQuietly(stream);
            client.destroy();
        }
    } catch (Exception e) {
        e.printStackTrace();
        fail("Unexpected Exception when starting up server.");
    }
}

@After
public void shutDown() {
    if (output.exists()) {
        output.delete();
    }
    try {
        server.stop();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
InformationsquelleAutor Quetzalcoatl | 2012-08-03