Friday, June 25, 2021

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

Thanks a lot for your explanation. 

The thing that puzzled me was that the HTTP 503 error generated when the ear file was deployed to Weblogic 14 server. If the error and warning can be ignored, why did we encounter this HTTP 503 error? What is the best way to figure out what caused this server error?

Currently, I'm working on installing WebLogic server 14 my in Eclipse for local deployment, however, I'm not sure if this is a better way for our local development as I don't have much experience with Weblogic server. The production WebLogic server on Linux is maintained by another group. 

Would Jetty or Tomcat server be a better choice in terms of easy configuration etc.? If so, we should install the latest version, right?

Your help is much appreciated,

On Friday, June 25, 2021 at 5:01:19 AM UTC-5 Jens wrote:

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