org.eclipse.jetty.util.ssl.SslContextFactory$Client ClassNot



我有一个工作的应用程序一直在使用码头服务器版本9.4.15.v20190215。由于漏洞扫描发现码头服务器依赖项中存在问题,我考虑升级我的应用程序以使用 jetty-server9.4.19-v20190610,这是我撰写本文时的最新版本。

我尝试再次编译应用程序,但在启动过程中收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/util/ssl/SslContextFactory$Client
at org.eclipse.jetty.websocket.client.HttpClientProvider.get(HttpClientProvider.java:49)
at org.eclipse.jetty.websocket.client.WebSocketClient.<init>(WebSocketClient.java:261)
at org.eclipse.jetty.websocket.jsr356.ClientContainer.<init>(ClientContainer.java:140)
at org.eclipse.jetty.websocket.jsr356.server.ServerContainer.<init>(ServerContainer.java:94)
at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.configureContext(WebSocketServerContainerInitializer.java:152)
at it.kahoot.merlin.jetty.JettyServer.main(JettyServer.java:53)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.util.ssl.SslContextFactory$Client
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more

我知道不再找到类org.eclipse.jetty.util.ssl.SslContextFactory$Client了。

我该如何继续?

通过将 jetty 服务器版本追溯到导致此问题的第一个版本,我发现它是 jetty 服务器版本9.4.16.v20190411,其发行说明提到了以下内容:

jetty-9.4.16.v20190411 - 11 April 2019
...
+ 3464 Split SslContextFactory into Client and Server
...

给定类名,我认为我需要将jetty-util添加到我的依赖项(pom.xml(,所以我做了:

<!-- pom.xml -->
...
<properties>
<jetty.version>9.4.19.v20190610</jetty.version>
</properties>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- Needed for the SSLContextFactory$Client class -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>${jetty.version}</version>
</dependency>

编译和启动现在再次与最新的码头一起工作。

最新更新