开发者

Publish JAX-WS endpoint with embedded Jetty 7

Can anybody help with this?

I want to use an embedded Jetty 7 as Endpoint. This is what I tried:

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 = 80开发者_JS百科80;
    Server server = new Server(port);

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

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

}

But I cannot see whether this really uses Jetty instead of the default sun HttpServer.

One blog mentioned

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

But there doesn't seems to be such HttpServerProvider in Jetty 7.

Thanks for any help, Axel.


All what is necessary seems to be

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

The current contrib code from jetty-contrib/org/mortgay/jetty/j2se6 is not ready yet for Jetty 7. That's all.


You could simply open the URL of the WSDL in Firefox and check the response headers with Firebug. You should get something like:

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


The class was renamed to

org.eclipse.jetty.http.spi.JettyHttpServerProvider

And i took it from http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.0.6.v20130930/:

V9.0.6 for Java 7
V9.3.2 is for Java 8

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜