In my last email I forgot to mention:

I had found this in the Jetty docs 
(https://www.eclipse.org/jetty/documentation/jetty-9/index.html#Other%20Configuration):
 
…
<?xml version="1.0" encoding="ISO-8859-1"?>
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
      <Call name="setAttribute">
      <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
            <Arg>.*/spring-[^/]*\.jar$</Arg>
      </Call>
</Configure>
…
 
According to the description this argument is intended to allow controlling 
which .jars on the classpath are being scanned for annotations (in the example 
above only jars that start with "spring-"), but unfortunately it had no effect 
in my case. The below error still appeared and Jetty doesn’t start up…  ☹
 
 
 
From: Michael Moser <mmo...@gmail.com> 
Sent: Monday, March 6, 2023 3:43 PM
To: google-web-toolkit@googlegroups.com
Subject: Can one prevent Jetty from scanning specific jars for annotations?
 
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}
 
<mailto:c.g.g.d.s.j.WebAppContextWithReload@31419990%7b/,file:/D:/Projects/KStA_ZH_ZHQuest/code/application/zhquest-web/target/zhquest/,STARTING%7d%7bD:\Projects\KStA_ZH_ZHQuest\code\application\zhquest-web\target\zhquest%7d>
 
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 google-web-toolkit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/00ba01d9503e%24368ac9c0%24a3a05d40%24%40gmail.com.

Reply via email to