【问题标题】:Jetty WebSockets over HTTPS configured through the WebSocketServlet通过 WebSocketServlet 配置的 HTTPS 上的 Jetty WebSockets
【发布时间】:2017-01-29 21:05:19
【问题描述】:

我已经看到很多关于如何为 HTTPS SSL for Jetty 配置 Jetty 的示例,但它们似乎都使用了包含 main 执行方法的单独服务器类。我想将我的 WebServlet 作为通过 web.xml 文件配置的标准 servlet 执行。我目前有:

@WebServlet
public class MonitoringServlet extends WebSocketServlet {

    @Override
    public void configure(WebSocketServletFactory factory) {
        factory.register(MonitoringSocket.class);
    }
}

我应该将我的 SSL Servlet 配置代码放在哪里?在这个 Servlet 的 configure 方法中?在init 方法中?

我明白,在这种情况下,不需要实例化 Server 对象并使用 .start().join

【问题讨论】:

    标签: java servlets websocket jetty embedded-jetty


    【解决方案1】:

    Servlet 只是对请求产生响应的一种方式。

    通常,请求可以来自 HTTP/0.9、HTTP/1.0、HTTP/1.1 或 HTTP/2。

    将 SSL/TLS 用于协议的安全部分。

    从技术上讲,Servlet 运行甚至不需要 HTTP。

    用于提交请求的协议不受您为提供响应而实现的 Servlet 的控制。

    在 Jetty 中,您需要:

    • 一个服务器实例
    • 至少为 SSL/TLS 配置了 1 个连接器
    • 至少 1 个处理程序分配给服务器
      • 使用 servlet没有“Web 应用程序”的所有包袱(“Web 应用程序”通常具有 WEB-INF/web.xmlWEB-INF/classesWEB-INF/lib/*.jar)这将是一个 @ 987654326@
      • 将 servlet 与“Web 应用程序”一起使用,这将是 WebAppContext

    此设置可以来自jetty-distribution 中配置的${jetty.base} 或通过 使用Java 来构建服务器、它的连接器和它的处理程序。

    【讨论】:

    • 好的,我以前见过那个模型。我确实想使用WebAppContext,但我认为我不需要服务器实例。我以为这是为我处理的。这个链接Eclipse Websocket API 详细描述了一个略有不同的创建过程。
    猜你喜欢
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多