我在OSGi中运行了一个HttpService。通过这项服务,我想提供一个(有状态的)Web服务,但我不明白如何通过HttpService访问我的注释类。
HttpService提供我之前用过的registerServlet(java.lang.String alias, javax.servlet.Servlet servlet, java.util.Dictionary initparams, HttpContext context)
来使用Jersey提供我的JAX-RS服务。在这种情况下,ServletContainer
完成工作。我想以同样的方式提供我的Web服务。
似乎很明显我需要Servlet
。 JAX-WS RI提供了WSServlet
类似乎是正确的。它可以实例化,但是如何将我的Web服务注册到此Servlet? JAX-WS RI提供Endpoint
来定义通信端点。但我找不到将此实例连接到Servlet的方法。
有人有想法,如何完成工作?
答案 0 :(得分:1)
如何部署端点的最简单方法是
MyService svcImpl = new MyService();
Endpoint endpoint = Endpoint.create(svcImpl);
endpoint.publish("http://localhost:8080/myws/mysvc");
如果需要使用servlet进行部署,请查看以下文档:
https://jax-ws.java.net/nonav/2.2.10/docs/ch03.html#users-guide-war-file-packaging
在web.xml中,您将找到必要的信息。请注意端点的初始化在
中完成 com.sun.xml.ws.transport.http.servlet.WSServletContextListener