问题
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