Friday, June 25, 2021

Re: GWT 2.9, JDK 11 project upgrade issue: HTTP ERROR: 503: SERVICE_UNAVAILABLE

The code server is ready at
Code server started in 4.878 s ms
[ERROR] jreLeakPrevention.gcDaemonFail
java.lang.ClassNotFoundException: sun.misc.GC

This can be ignored. GWT's class JettyLauncher tries to fix a class loader memory leak within sun.misc.GC but this class does not exist in that package in Java 11. The exception is catched and logged as error, but code will continue.

java.lang.RuntimeException: Error scanning entry module-info.class from jar file:/C:/Users/jiny/gitTestUpgrade/aries/war/WEB-INF/lib/jakarta.xml.soap-api-1.4.1.jar
at org.eclipse.jetty.annotations.AnnotationParser.parseJar(
at org.eclipse.jetty.annotations.AnnotationParser.parse(
at org.eclipse.jetty.annotations.AnnotationConfiguration$
at org.eclipse.jetty.annotations.AnnotationConfiguration$
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(
at org.eclipse.jetty.util.thread.QueuedThreadPool$
at java.base/
Caused by: java.lang.UnsupportedOperationException: This feature requires ASM6
at org.objectweb.asm.ClassVisitor.visitModule(
at org.objectweb.asm.ClassReader.readModuleAttributes(
at org.objectweb.asm.ClassReader.accept(
at org.objectweb.asm.ClassReader.accept(
at org.eclipse.jetty.annotations.AnnotationParser.scanClass(
at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(
at org.eclipse.jetty.annotations.AnnotationParser.parseJar(
... 6 more

The embedded Jetty provided by GWT's DevMode class is too old to handle module-info.class files correctly during class file scanning. It basically requires newer ASM version.

The recommend approach for anything other than a small demo app is to not use the embedded Jetty provided by GWT DevMode. Instead use your own Jetty installation or a Jetty plugin for Gradle/Maven to deploy the server side part of your app. Or even better use the same application server that you are also using in production to minimize development/production differences. Once you do that you can also directly use GWT's CodeServer class without going through DevMode class. This will also remove the error log regarding sun.misc.GC.

There is also a discussion in to gather feedback wether or not GWT should remove embedded Jetty support. It makes configuring a server more complex but you also don't run into a situation where everything seems to look right, but still it does not work, as in your case.

-- J.

You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

No comments:

Post a Comment