Hi and sorry - this is only indirectly a GWT question but since it’s heavily
related with GWT someone might have already bumped into the same issue.
So I dare to ask it here – maybe someone in this group knows a work-around (so
please bear with me!):
For 4 of our 5 projects using GWT we are still using the “classic” GWT 2.8
setup, i.e. with the “classic” plugin where one starts Jetty for development
and debugging.
We recently had to upgrade a couple of POI libraries (an Apache library to
generate Office documents from Java) and a few of those new jars obviously
annotations that are not compatible with the Jetty-version used by the GWT 2.8
plugin.
“Not compatible” meaning, that Jetty during startup fails to scan those files
for certain annotations in AnnotationConfiguration.scanForAnnotations (full
error stack-trace below).
With Tomcat I had a similar (or identical?) issue but Tomcat offers a
configuration option (in catalina.properties) to omit a list of jars from being
scanned for Servlet annotations like so:
…
# Additional JARs (over and above the default JARs listed above) to skip when
# scanning for Servlet 3.0 pluggability features. These features include web
# fragments, annotations, SCIs and classes that match @HandlesTypes. The list
# must be a comma separated list of JAR file names.
# added by MMS: these contain an illegal byte tag (for Java 8) in their
constants pool:
org.apache.catalina.startup.ContextConfig.jarsToSkip=\
log4j-api-2.17.2.jar,\
poi-5.2.3.jar,\
poi-ooxml-5.2.3.jar,\
poi-ooxml-lite-5.2.3.jar,\
xmlbeans-5.1.1.jar
…
This saved me with Tomcat. But with Jetty I had no luck so far to achieve
something similar. This is now hindering our developer since they can’t run and
debug the application locally anymore. I had planned to move that project to
the new plugin and a local Tomcat only later this year.
Is there *any* way to teach Jetty to *not* do these Annotation scannings,
either, or otherwise prevent these jars from being scanned?
The full error stacktrace:
...
00:00:11.874 [WARN] Failed startup of context
c.g.g.d.s.j.WebAppContextWithReload@31419990{/,file:/D:/Projects/KStA_ZH_ZHQuest/code/application/zhquest-web/target/zhquest/,STARTING}{D:\Projects\KStA_ZH_ZHQuest\code\application\zhquest-web\target\zhquest}
org.eclipse.jetty.util.MultiException: Multiple exceptions
at
org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:536)
at
org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:447)
at
org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:479)
at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1337)
at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at
com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at
org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:387)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at
com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:923)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:706)
at com.google.gwt.dev.DevMode.main(DevMode.java:432) Caused by:
org.eclipse.jetty.util.MultiException: Multiple exceptions
at
org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:899)
at
org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:548)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Error scanning entry
META-INF/versions/9/org/apache/logging/log4j/util/Base64Util.class from jar
file:/D:/Projects/KStA_ZH_ZHQuest/code/application/zhquest-web/target/zhquest/WEB-INF/lib/log4j-api-2.17.2.jar
at
org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:913)
at
org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:548)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748) Caused by:
java.lang.IllegalArgumentException: null
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at
org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:973)
at
org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
at
org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
at
org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
at
org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:548)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-web-toolkit/009601d95039%24f6a72f50%24e3f58df0%24%40gmail.com.