Jetty 版本 9 为嵌入式服务器抛出 java.lang.NoClassDefFoundError

Jetty Version 9 throws java.lang.NoClassDefFoundError for Embedded Server

我决定升级 Jetty 以添加对 HTTPS 连接的支持。构建由 Maven 成功完成,代码在 Java 7 JRE 上运行。 使用嵌入式服务器代码从 Jetty 8 (8.1.8.v20121106) 升级到 Jetty 版本 9 (9.2.14.v20151106) 后,我在 Jetty 服务器启动开始时收到以下错误。

任何提示是什么导致了类加载器的错误?

sh ./testit.sh
Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.jetty.server.HttpConfiguration$Customizer
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:94)
    at java.lang.J9VMInternals.prepare(J9VMInternals.java:514)
    at java.lang.Class.getMethod(Class.java:1113)
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:507)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:499)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.HttpConfiguration$Customizer
    at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
    at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:750)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:326)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:731)
    ... 6 more

我已经找出错误原因。 Maven 构建工具将 Jetty 分发版本号添加到目标库中,这与我的 Java 静态类路径配置不匹配。更正启动脚本中的类路径设置后,程序代码启动了嵌入式 Jetty 9 服务器并且对我的项目工作得很好。

@Joakim Erdfelt 这是我的 Java 版本

java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr9fp10-20150708_01(SR9 FP10))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR9_20150701_0050_B255667
JIT  - tr.r11_20150626_95120.01
GC   - R26_Java726_SR9_20150701_0050_B255667_CMPRSS
J9CL - 20150701_255667)
JCL - 20150628_01 based on Oracle jdk7u85-b15