使用嵌入式Jetty 7发布JAX-WS端点

时间:2009-10-26 16:08:45

标签: java jax-ws embedded-jetty

有人可以帮忙吗?

我想使用嵌入式Jetty 7作为端点。这就是我试过的:

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();
}

}

但是我无法确定这是否真的使用Jetty而不是默认的sun HttpServer。

一篇博客提及

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

但Jetty 7中似乎没有这样的HttpServerProvider。

感谢任何帮助,Axel。

3 个答案:

答案 0 :(得分:4)

所有必要的东西似乎都是

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

来自jetty-contrib / org / mortgay / jetty / j2se6的当前贡献代码还没有为Jetty 7做好准备。这就是全部。

答案 1 :(得分:3)

您只需在Firefox中打开WSDL的URL,然后使用Firebug检查响应头。你应该得到类似的东西:

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

答案 2 :(得分:2)

该课程已重命名为

org.eclipse.jetty.http.spi.JettyHttpServerProvider

我从http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.0.6.v20130930/获取了它:

V9.0.6 for Java 7
V9.3.2适用于Java 8