2016-06-24 14 views
0

ich den Server aus dem Endgerät über den java -jar target/test-service-1.0-jar-with-dependencies.jar Befehl startenSchreiben von Tests für Grizzly Sever mit Jersey mit jar Abhängigkeit

jedoch bei Tests von IntelliJ IDEA laufen, ich kann einfach nicht herausfinden, wie der Server zu starten ..

Dies ist der aktuelle Code, der nicht

private HttpServer server; 
private WebTarget target; 

@Before 
public void setUp() throws Exception { 
    // start the server 
    server = Main.startServer(); 
    // create the client 
    Client c = ClientBuilder.newBuilder().register(JacksonFeature.class).build(); 
    // uncomment the following line if you want to enable 
    // support for JSON in the client (you also have to uncomment 
    // dependency on jersey-media-json module in pom.xml and Main.startServer()) 
    // -- 
    // c.configuration().enable(new org.glassfish.jersey.media.json.JsonJaxbFeature()); 

    target = c.target(Main.BASE_URI); 
} 

Dies ist Code meines starts

public static HttpServer startServer() { 
     // create a resource config that scans for JAX-RS resources and providers 

    ResourceConfig rc = new ResourceConfig().packages("com.test.service").register(JacksonFeature.class); 
    EncodingFilter.enableFor(rc, GZipEncoder.class); 
    rc.register(LoggingFilter.class); 
    rc.register(MultiPartFeature.class); 
    rc.register(CORSResponseFilter.class); 
    // rc.property("config", configParams); 
    // create and start a new instance of grizzly http server 
    // exposing the Jersey application at BASE_URI 
    HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc); 
    //httpServer.getServerConfiguration().addHttpHandler(shh); 
    return httpServer; 

} 
funktioniert

Antwort

0

Es sollte einfach von selbst beginnen. Aber zum Testen möchten Sie wahrscheinlich kontrollieren, wann es startet. Sie können false als third argument to the server factory method übergeben. Auf diese Weise steuern Sie, wann es starten soll.

Sie können start und stop auf der HttpServer Instanz in Ihrer Vorher-Nachher-Methode in Ihrem Test aufrufen. Sie müssen den Code in der Main Klasse auch aktualisieren, um start() zu rufen.

Sie können auch überprüfen, Jersey Test Framework. Hier müssen Sie keine Server starten und stoppen. Der Rahmen wird es für Sie handhaben. Es macht auch Ihre Tests konfigurierbarer als Ihre aktuelle Einrichtung. Angenommen, Sie möchten nur eine Ressource registrieren oder einige Mock-Dienste einspeisen. Persönlich würde ich mit dem Test-Framework gehen.