gpt4 book ai didi

java - 如何在 OSGi 中通过 HttpService 发布 JAX-WS

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:30 30 4
gpt4 key购买 nike

我有一个在 OSGi 中运行的 HttpService。通过此服务,我想提供(有状态)Web 服务,但我不明白如何使带注释的类可通过 HttpService 进行访问。

HttpService 提供了 registerServlet(java.lang.String alias, javax.servlet.Servlet servlet, java.util.Dictionary initparams, HttpContext context),我之前用过它来使用 Jersey 提供 JAX-RS 服务。在这种情况下,ServletContainer 完成这项工作。我想以同样的方式提供我的网络服务。

很明显我需要一个 Servlet。 JAX-WS RI 提供了一个WSServlet 类,这似乎是正确的事情。它可以被实例化,但是我如何将我的Web服务注册到这个Servlet呢? JAX-WS RI 提供了一个Endpoint 来定义通信端点。但我找不到将该实例连接到 Servlet 的方法。

有人知道如何完成这项工作吗?

最佳答案

部署端点的最简单方法是

    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 
  • 您也应该能够以某种方式将 ContextListener 与 HttpService 一起使用。在初始化期间,解析描述符 sun-jaxws.xml。

关于java - 如何在 OSGi 中通过 HttpService 发布 JAX-WS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124854/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com