The command tomcat-digest included in tomcat package does not work as expected but provide an exception for missing class. Reproducible: Always Steps to Reproduce: 1. Install tomcat package 2. Run the command tomcat-digest 3. Actual Results: $ tomcat-digest Secret.123 /usr/bin/build-classpath: Could not find commons-daemon Java extension for this JVM /usr/bin/build-classpath: Could not find servlet Java extension for this JVM /usr/bin/build-classpath: error: Some specified jars were not found Nov 04, 2025 5:25:03 PM org.apache.catalina.startup.Tool main SEVERE: Exception locating main() method java.lang.NoClassDefFoundError: jakarta/servlet/http/HttpServletRequest at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) at java.base/java.lang.Class.getDeclaredMethods0(Native Method) at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3010) at java.base/java.lang.Class.getMethodsRecursive(Class.java:3146) at java.base/java.lang.Class.getMethod0(Class.java:3131) at java.base/java.lang.Class.getMethod(Class.java:2164) at org.apache.catalina.startup.Tool.main(Tool.java:205) Caused by: java.lang.ClassNotFoundException: jakarta.servlet.http.HttpServletRequest at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) ... 14 more Expected Results: $ tomcat-digest Secret.123 Secret.123:aeac5fb53b58010cd5c54388b3560c3e68a1a101cb12954932091fe9e915f792$1$ceb32bf97ab86dd7814e553b3fac81e9881ff02da0a699526752aeafcfe11a8ee20514ecc93ddb7a5100c44143abafe20136a83831e2afff32b4f7ca5356264e Additional Information: ]# rpm -qa|grep tomcat tomcat-servlet-6.0-api-10.1.46-1.fc43.noarch tomcat-el-5.0-api-10.1.46-1.fc43.noarch tomcat-jsp-3.1-api-10.1.46-1.fc43.noarch tomcat-lib-10.1.46-1.fc43.noarch tomcat-10.1.46-1.fc43.noarch tomcat-native-2.0.8-3.fc43.x86_64 tomcat-jakartaee-migration-1.0.9-7.fc43.noarch dogtag-jss-tomcat-5.9.0~alpha1-1.fc43.x86_64
The postinstall operation that added the servlet.jar to /usr/share/java between F42 and F43/Rawhide was removed as part of larger cleanup in the spec file after updating from Tomcat 9 -> 10.1; see https://src.fedoraproject.org/rpms/tomcat/c/7237392?branch=f43. This is causing the failure because the BASE_JARS variable is using the now incorrect location value for the servlet jar in the script. Patch to fix is (I also removed commons-daemon which was also missing and throwing a warning): ``` # diff -rupN /usr/bin/tomcat-digest.orig /usr/bin/tomcat-digest --- /usr/bin/tomcat-digest.orig 2025-11-04 13:58:13.145926441 -0500 +++ /usr/bin/tomcat-digest 2025-11-04 13:58:39.928288758 -0500 @@ -34,7 +34,7 @@ export CLASSPATH MAIN_CLASS="org.apache.catalina.startup.Tool" BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" BASE_OPTIONS="" -BASE_JARS="commons-daemon tomcat/catalina servlet tomcat/tomcat-util tomcat/tomcat-coyote tomcat/tomcat-api tomcat/tomcat-util-scan" +BASE_JARS="tomcat/catalina tomcat/tomcat-servlet-api tomcat/tomcat-util tomcat/tomcat-coyote tomcat/tomcat-api tomcat/tomcat-util-scan" # Set parameters set_classpath $BASE_JARS ```