2010-05-22 12 views
6

Non voglio utilizzare Tomcat, Jetty o un contenitore Java EE 6 per offrire servizi REST ma il web server integrato.Come eseguire Jersey con il web server integrato da Java SE 6?

+0

Buona domanda. Sembra che non vi sia alcun aiuto per gli utenti di Java SE quando si tratta di servizi web. E non tutti vogliono un server web in senso Enterprise ... Spero che ci siano altri esempi o aiuto pubblicati qui. –

risposta

5

Assicurarsi di avere Jersey di jersey-server.jar nel classpath, allora è semplice come:

HttpServer server = HttpServerFactory.create("http://localhost:9998/"); 
server.start(); 

pick qualunque porta che si desidera utilizzare.

+0

@wjl: la domanda riguarda come eseguire Jersey con il server Web incorporato di Java SE. La domanda non riguarda come configurare/preparare Jersey per essere eseguito su un server arbitrario. È lo stesso per tutti i server. – BalusC

0

Per Jersey 2.x è necessario jersey-container-jdk-http nel classpath. Se si utilizza Maven aggiungere questo alla tua pom.xml:

<dependency> 
    <groupId>org.glassfish.jersey.containers</groupId> 
    <artifactId>jersey-container-jdk-http</artifactId> 
    <version>2.9.1</version> 
</dependency> 

Per avviare l'utilizzo del server in questo modo:

URI baseUri = UriBuilder.fromUri("http://localhost/").port(10000).build(); 
ResourceConfig resourceConfig=new ResourceConfig(WebService.class); 
HttpServer httpServer=JdkHttpServerFactory.createHttpServer(baseUri, resourceConfig,true);