2014-06-24 1 views
1

Puis-je utiliser simple webservice comme ceci:Puis-je exécuter un service Web JAX-RS sur com.sun.net.httpserver.HttpServer?

@Path("/rs/hello") 
public class HelloWorldProgram { 

    //path is default 
    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String sayHello() { 
     return "Hello, World!"; 
    } 

    @GET 
    @Produces(MediaType.TEXT_XML) 
    @Path("/xml") 
    public String sayXMLHello() { 
     return "<?xml version=\"1.0\"?>" + "<hello> Hello" + "</hello>"; 
    } 
} 

sur le fourni avec le serveur web simple JDK com.sun.net.httpserver.HttpServer?

+1

Avez-vous essayé si vous le pouvez? – DBedrenko

+1

Je ne sais pas comment fournir la classe annotée au serveur – mist

Répondre

1

Non, vous ne pouvez pas utiliser com.sun.net.httpserver.HttpServer. Vous avez besoin d'un serveur compatible avec l'API Servlet. vous pouvez utiliser à la place par exemple org.glassfish.grizzly.http.server.HttpServer:

import java.net.URI; 

import javax.ws.rs.core.UriBuilder; 

import org.glassfish.grizzly.http.server.HttpServer; 
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; 
import org.glassfish.jersey.server.ResourceConfig; 

public class Server { 

    public static void main(String[] args) throws InterruptedException { 
     URI uri = UriBuilder.fromUri("http://localhost/").port(8888).build(); 
     ResourceConfig rc = new ResourceConfig(HelloWorldProgram.class); 
     HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, rc); 
     Thread.currentThread().join(); // keep running 
    } 
} 

Vous aurez besoin d'une dépendance à Jersey Container Grizzly2 Servlet.

+0

Quelle est la gravité de cette grizzly2? Taille en mb comme une dépendance maven avec toutes ses dépendances. – mist

+0

@mist jersey-container-grizzly2-servlet 2.10 et toutes ses dépendances pèsent 5,6 Mo, cependant il inclut déjà jersey (framework JAX-RS) –

Questions connexes