为了增加对HTTPS连接的支持,我决定升级Jetty。构建是由Maven成功完成的,代码运行在Java7JRE上。在使用嵌入式服务器代码从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
发布于 2015-12-04 16:29:44
我已经把错误原因隔离出来了。Maven构建工具将Jetty发行版版本号添加到目标库中,这与我的Java静态类路径配置不匹配。在纠正了启动脚本中的类路径设置后,程序代码启动了嵌入式Jetty 9服务器,并在我的项目中正常工作。
@Joakim Erd毡这是我的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
https://stackoverflow.com/questions/34077738
复制相似问题