Skip to content

Caused by: java.lang.ClassNotFoundException: org.apache.catalina.core.ApplicationContext$DispatchData #49341

@JanStureNielsen

Description

@JanStureNielsen

Spring Boot 4.0.3 runnable JAR on:

openjdk 25.0.1 2025-10-21
OpenJDK Runtime Environment (build 25.0.1+8-27)
OpenJDK 64-Bit Server VM (build 25.0.1+8-27, mixed mode, sharing)

in some circumstances throws:

Feb 27, 2026 8:29:56 AM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing [ErrorPage[errorCode=0, location=/error]]
java.lang.NoClassDefFoundError: org/apache/catalina/core/ApplicationContext$DispatchData
        at org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:404)
        at org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:119)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:345)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:206)
        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:282)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:147)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1779)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57)
        at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.core.ApplicationContext$DispatchData
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:377)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557)
        at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107)
        at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
        ... 18 more

Successfully worked-around with extract:

+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>extract-jar</id>
+                        <phase>install</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>java</executable>
+                            <arguments>
+                                <argument>-Djarmode=tools</argument>
+                                <argument>-jar</argument>
+                                <argument>${user.home}/.fm/${project.artifactId}.jar</argument>
+                                <argument>extract</argument>
+                                <argument>--destination</argument>
+                                <argument>${user.home}/.fm/${project.artifactId}</argument>
+                                <argument>--force</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>

Working on a minimal reproduction...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions