2015-12-03 101 views
0

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

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

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 
+0

什么'J9VMInternals'?听起来像您正在使用Java 9或其他非Oracle JVM。 –

回答

0

我已经隔离了错误原因。 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 
相关问题