Publish JAX-WS endpoint with embedded Jetty 7

a 夏天 提交于 2019-12-03 12:51:08

问题


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 = 8080;
    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.


回答1:


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.




回答2:


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)



回答3:


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



来源:https://stackoverflow.com/questions/1625666/publish-jax-ws-endpoint-with-embedded-jetty-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!