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.