vaadin / client-server-addon-template

Client-server Vaadin add-on template using Lit.
https://vaadin.com/directory
Apache License 2.0
3 stars 5 forks source link

Starter fails if run with JDK 21 #76

Open OlliTietavainenVaadin opened 4 days ago

OlliTietavainenVaadin commented 4 days ago

If you create a new instance of the template and try to run mvn jetty:run with JDK 21, it will start and fail with the following stack trace. Using JDK 17 works without issues.

This is especially confusing as "Unsupported class file major version" usually means your JDK is too old, not too new.

C:\Users\Olli\.jdks\temurin-21.0.2\bin\java.exe -Dmaven.multiModuleProjectDirectory=C:\dev\addons\v24-client-server-addon -Djansi.passthrough=true "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\lib\idea_rt.jar=61391:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven3\boot\plexus-classworlds-2.7.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version=2023.3.6 org.eclipse.jetty:jetty-maven-plugin:11.0.13:run

[...]

[WARNING] Failed startup of context o.e.j.m.p.MavenWebAppContext@219dd935{/,[file:///C:/dev/addons/v24-client-server-addon/target/webapp-synth/, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-time-picker-flow/24.4.13/vaadin-time-picker-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-combo-box-flow/24.4.13/vaadin-combo-box-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-menu-bar-flow/24.4.13/vaadin-menu-bar-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-text-field-flow/24.4.13/vaadin-text-field-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/componentfactory/togglebutton/3.0.0/togglebutton-3.0.0.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/flow-dnd/24.4.9/flow-dnd-24.4.9.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-flow-components-base/24.4.13/vaadin-flow-components-base-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-button-flow/24.4.13/vaadin-button-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/flow-client/24.4.9/flow-client-24.4.9.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-renderer-flow/24.4.13/vaadin-renderer-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-date-picker-flow/24.4.13/vaadin-date-picker-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/flow-push/24.4.9/flow-push-24.4.9.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-messages-flow/24.4.13/vaadin-messages-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-grid-flow/24.4.13/vaadin-grid-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-context-menu-flow/24.4.13/vaadin-context-menu-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-select-flow/24.4.13/vaadin-select-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-cookie-consent-flow/24.4.13/vaadin-cookie-consent-flow-24.4.13.jar!/META-INF/resources, jar:file:///C:/Users/Olli/.m2/repository/com/vaadin/vaadin-virtual-list-flow/24.4.13/vaadin-virtual-list-flow-24.4.13.jar!/META-INF/resources],UNAVAILABLE}{file:///C:/dev/addons/v24-client-server-addon/target/webapp-synth/}
org.eclipse.jetty.util.MultiException: Multiple exceptions
    at org.eclipse.jetty.util.MultiException.ifExceptionThrow (MultiException.java:117)
    at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations (AnnotationConfiguration.java:576)
    at org.eclipse.jetty.annotations.AnnotationConfiguration.configure (AnnotationConfiguration.java:455)
    at org.eclipse.jetty.webapp.Configurations.configure (Configurations.java:514)
    at org.eclipse.jetty.webapp.WebAppContext.configure (WebAppContext.java:515)
    at org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1301)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:901)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart (ServletContextHandler.java:306)
    at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:533)
    at org.eclipse.jetty.maven.plugin.MavenWebAppContext.doStart (MavenWebAppContext.java:294)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
    at org.eclipse.jetty.server.Server.start (Server.java:470)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
    at org.eclipse.jetty.server.Server.doStart (Server.java:415)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
    at org.eclipse.jetty.maven.plugin.JettyEmbedder.doStart (JettyEmbedder.java:223)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
    at org.eclipse.jetty.maven.plugin.JettyRunMojo.startJettyEmbedded (JettyRunMojo.java:97)
    at org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.startJetty (AbstractWebAppMojo.java:441)
    at org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.execute (AbstractWebAppMojo.java:419)
    at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute (JettyRunMojo.java:85)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
    Suppressed: java.lang.RuntimeException: Error scanning entry com/fasterxml/jackson/core/io/doubleparser/FastIntegerMath.class from jar file:///C:/Users/Olli/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.jar
        at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$2 (AnnotationParser.java:844)
        at java.util.TreeMap$ValueSpliterator.forEachRemaining (TreeMap.java:3250)
        at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar (AnnotationParser.java:836)
        at org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:737)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:934)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run (QueuedThreadPool.java:1078)
        at java.lang.Thread.run (Thread.java:1583)
    Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
        at org.objectweb.asm.ClassReader.<init> (ClassReader.java:199)
        at org.objectweb.asm.ClassReader.<init> (ClassReader.java:180)
        at org.objectweb.asm.ClassReader.<init> (ClassReader.java:166)
        at org.objectweb.asm.ClassReader.<init> (ClassReader.java:287)
        at org.eclipse.jetty.annotations.AnnotationParser.scanClass (AnnotationParser.java:896)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry (AnnotationParser.java:881)
        at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$2 (AnnotationParser.java:840)
        at java.util.TreeMap$ValueSpliterator.forEachRemaining (TreeMap.java:3250)
        at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar (AnnotationParser.java:836)
        at org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:737)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:934)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run (QueuedThreadPool.java:1078)
        at java.lang.Thread.run (Thread.java:1583)
Caused by: java.lang.RuntimeException: Error scanning entry com/fasterxml/jackson/core/io/doubleparser/FastDoubleSwar.class from jar file:///C:/Users/Olli/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.jar
    at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$2 (AnnotationParser.java:844)
    at java.util.TreeMap$ValueSpliterator.forEachRemaining (TreeMap.java:3250)
    at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
    at org.eclipse.jetty.annotations.AnnotationParser.parseJar (AnnotationParser.java:836)
    at org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:737)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:934)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run (QueuedThreadPool.java:1078)
    at java.lang.Thread.run (Thread.java:1583)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:199)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:180)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:166)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:287)
    at org.eclipse.jetty.annotations.AnnotationParser.scanClass (AnnotationParser.java:896)
    at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry (AnnotationParser.java:881)
    at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$2 (AnnotationParser.java:840)
    at java.util.TreeMap$ValueSpliterator.forEachRemaining (TreeMap.java:3250)
    at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
    at org.eclipse.jetty.annotations.AnnotationParser.parseJar (AnnotationParser.java:836)
    at org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:737)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:934)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run (QueuedThreadPool.java:1078)
    at java.lang.Thread.run (Thread.java:1583)
[INFO] Started ServerConnector@19b33b0d{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
mcollovati commented 4 days ago

It looks like a misconfiguration of the jetty plugin; we have a property ponting at 11.0.20, but then in pluginManagement section the version is hard-coded to 11.0.13

https://github.com/vaadin/client-server-addon-template/blob/c880341f1177a82c2b82f571c81195bc5190cb79/pom.xml#L134-L136

BTW, jetty 11 is EOL in January 2025. It would be good to upgrade to Jetty 12