【问题标题】:Websocket connection failure - Jetty 7.6 using SSL + java 11 but works in Java 8Websocket 连接失败 - 使用 SSL + java 11 的 Jetty 7.6 但适用于 Java 8
【发布时间】:2021-09-13 21:27:57
【问题描述】:

我们有使用 SSL 在本地运行的码头服务器,每当我们尝试使用 websocket 连接时,chrome 都会抛出连接失败错误。

Server server = new Server();
            
            SslContextFactory sslContextFactory = new SslContextFactory();
            InputStream stream = 
           
      websocket.class.getResourceAsStream("path to keystore.jks");

            KeyStore ks = KeyStore.getInstance("JKS");
            ks.load(stream, "password".toCharArray());
            
            sslContextFactory.setKeyStore(ks);
            sslContextFactory.setKeyStoreType("JKS");
            sslContextFactory.setKeyStorePassword(Constants.keyStorePasswordMaster);
            
            SslSelectChannelConnector sslConnector = new 
            SslSelectChannelConnector(sslContextFactory);
            sslConnector.setPort(8083);
            server.addConnector(sslConnector);   
            
            ServletContextHandler handler = new 
            ServletContextHandler(ServletContextHandler.SESSIONS);
            handler.setContextPath("/server/ws");
            server.setHandler(handler);
            handler.addServlet(PingServlet.class, "/ping");
        
            server.start();   
            LOG.info("end setUpSSLSelectChannel() and secure jetty started");

PS:相同的代码仅适用于 Java 8 仅适用于 java 11 我们有这个问题。任何帮助都非常感谢

【问题讨论】:

    标签: java websocket jetty


    【解决方案1】:

    Jetty 7.x 和 8.x 与 Java 11 不兼容。

    查看有关此主题的过去答案:

    https://stackoverflow.com/a/69046352/775715

    Jetty 7.x 早在 2014 年就被宣布为 EOL(生命终结)。

    查看 Jetty 版本表:https://www.eclipse.org/jetty/download.php#version-table

    您需要使用 Jetty 9.4.x 系列才能获得对 Java 11 的最低支持。

    如果您需要对 Java 11 的全面支持,请使用 Jetty 10.x(旧的 javax.* 命名空间)或 Jetty 11.x(新的 jakarta.* 命名空间)

    另外值得注意的是,Jetty 7.x 和 8.x 上的 WebSocket 支持是针对 WebSocket 草案的,而不是最终规范。目前没有浏览器支持旧草稿版本。您至少需要使用 Jetty 9.x 才能获得适当的 websocket 支持。

    【讨论】:

    • 谢谢,会测试最新版本的jetty。
    猜你喜欢
    • 2021-10-28
    • 2019-05-23
    • 2016-08-03
    • 2013-10-14
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多