2009-10-26 13 views
8

¿Alguien puede ayudar con esto?Publicar el punto final JAX-WS con Jetty 7 incrustado

Quiero utilizar un Jetty 7 incorporado como Endpoint. Esto es lo que he intentado:

public class MiniTestJetty { 

@WebService(targetNamespace = "http") 
public static class Calculator { 

    @Resource 
    WebServiceContext context; 

    public int add(int a, int b) { 
     return a + b; 
    } 
} 


public static void main(String[] args) throws Exception { 
    int port = 8080; 
    Server server = new Server(port); 

    Calculator calculator = new Calculator(); 
    Endpoint.publish("http://localhost:" + port + "/calc", calculator); 

    server.start(); 
    server.join(); 
} 

}

Pero no puedo ver si esto realmente utiliza embarcadero en lugar del sol por defecto HttpServer.

un blog menciona

System.setProperty("com.sun.net.httpserver.HttpServerProvider", 
     "org.mortbay.jetty.j2se6.JettyHttpServerProvider"); 

Pero no parece ser tal HttpServerProvider en el embarcadero 7.

Gracias por cualquier ayuda, Axel.

+0

Parece que hay un código en la sección contrib de Jetty 6 que hace algo similar pero nada en Jetty 7 – axelrose

Respuesta

4

Todo lo necesario parece ser

System.setProperty("com.sun.net.httpserver.HttpServerProvider", "org.mortbay.jetty.j2se6.JettyHttpServerProvider"); 

El código contrib actual de embarcadero-contrib/org/mortgay/embarcadero/j2se6 aún no está listo para el embarcadero 7. Eso es todo.

+0

¿Cómo te diste cuenta de eso, por favor? –

3

Simplemente puede abrir la URL del WSDL en Firefox y verificar los encabezados de respuesta con Firebug. Usted debe obtener algo como:

HTTP/1.1 200 OK 
Content-Type: text/xml;charset=utf-8 
Transfer-Encoding: chunked 
Server: Jetty(7.1.2.v20100523) 
Cuestiones relacionadas