Bug 2412302 - Command tomcat-digest does not work
Summary: Command tomcat-digest does not work
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: tomcat
Version: 43
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Dimitris Soumis
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/dogtagpki/pki/acti...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-11-04 17:41 UTC by Marco Fargetta
Modified: 2026-04-08 13:21 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-04-08 13:21:03 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Marco Fargetta 2025-11-04 17:41:19 UTC
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

Comment 1 Coty Sutherland 2025-11-04 19:17:42 UTC
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
```


Note You need to log in before you can comment on or make changes to this bug.