Merged
Conversation
…eption on Java 21 hive-metastore 2.3.7 references javax.servlet.Filter internally when opening the metastore client. Spring Boot 3.x migrated to Jakarta Servlet (jakarta.*) and no longer provides javax.servlet on the classpath. The existing exclusions removed javax.servlet transitive dependencies without providing a runtime shim, causing ClassNotFoundException at startup. Adding javax.servlet-api:3.1.0 at runtime scope in beekeeper-scheduler, beekeeper-scheduler-apiary, and beekeeper-metadata-cleanup satisfies Hive's classloading without interfering with Spring's Jakarta servlet stack. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…let ClassCastException Adding javax.servlet-api:3.1.0 at runtime (for Hive classloading) allows the old tomcat:jasper-runtime JspServlet to be loaded. Tomcat 10.x (Spring Boot 3.x) then tries to cast it to jakarta.servlet.Servlet and fails with ClassCastException. Excluding tomcat:jasper-compiler and tomcat:jasper-runtime from hive-metastore in beekeeper-cleanup prevents the old Jasper from appearing on the classpath entirely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Hive modules beekeeper-scheduler: excludes tomcat:jasper-compiler and tomcat:jasper-runtime from hive-metastore. Without these exclusions, beekeeper-scheduler-apiary (which depends on beekeeper-scheduler) inherits old Jasper via the transitive chain. Old JspServlet implements javax.servlet.Servlet, which Tomcat 10.x cannot cast to jakarta.servlet.Servlet. beekeeper-path-cleanup: adds javax.servlet-api:3.1.0 at runtime scope. As a Spring Boot web app using hive-metastore transitively via beekeeper-cleanup, it needs javax.servlet on the classpath so HiveMetaStoreClient.open() can load javax.servlet.Filter at runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
githubjianli
approved these changes
Apr 23, 2026
haroldjimenez
approved these changes
Apr 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
After migrating to Spring Boot 3.x + Java 21, applications that use hive-metastore 2.3.7 fail at runtime
hive-metastore 2.3.7 was compiled against the old javax.servlet API. Spring Boot 3 / Tomcat 10 migrated to the jakarta.servlet namespace (Jakarta EE 9), so javax.servlet.Filter is no longer on the classpath.
Solution: