Since upgrading to Tomcat 7.0.16, the command line noted at http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html hasn't worked for me. I've been unable to find any answers from google, other than some references that seem to say I'm missing tomcat-util.jar on my classpath (which I'm not). I did narrow the problem down to catalina.jar. If I copy an old version into the lib directory, overwriting the new copy, it works again. Am I doing something wrong, or is this a bug? See below for examples of running the command with various versions.
OS: Windows XP and Windows Server 2003 Thanks, Jeremy C. C:\Code\tomcattest>java -version java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) C:\Code\tomcattest>dir /ad /b apache-tomcat-7.0.11 apache-tomcat-7.0.12 apache-tomcat-7.0.14 apache-tomcat-7.0.16 apache-tomcat-7.0.19 C:\Code\tomcattest>set classpath classpath=c:\code\tomcattest\apache-tomcat\bin\tomcat-juli.jar;c:\code\tomcattest\apache-tomcat\lib\catalina.jar;c:\code\tomcattest\apache-tomcat\lib\tomcat-util.jar C:\Code\tomcattest>xcopy /e /q /i apache-tomcat-7.0.11 apache-tomcat 543 File(s) copied C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:e727d1464ae12436e899a726da5b2f11d8381b26 C:\Code\tomcattest>rd /q /s apache-tomcat C:\Code\tomcattest>xcopy /e /q /i apache-tomcat-7.0.12 apache-tomcat 544 File(s) copied C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:e727d1464ae12436e899a726da5b2f11d8381b26 C:\Code\tomcattest>rd /q /s apache-tomcat C:\Code\tomcattest>xcopy /e /q /i apache-tomcat-7.0.14 apache-tomcat 544 File(s) copied C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:e727d1464ae12436e899a726da5b2f11d8381b26 C:\Code\tomcattest>rd /q /s apache-tomcat C:\Code\tomcattest>xcopy /e /q /i apache-tomcat-7.0.16 apache-tomcat 544 File(s) copied C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tomcat/util/buf/HexUtils at org.apache.catalina.realm.RealmBase.Digest(RealmBase.java:1293) at org.apache.catalina.realm.RealmBase.main(RealmBase.java:1320) Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.buf.HexUtils at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more C:\Code\tomcattest>rd /q /s apache-tomcat C:\Code\tomcattest>xcopy /e /q /i apache-tomcat-7.0.19 apache-tomcat 547 File(s) copied C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tomcat/util/buf/HexUtils at org.apache.catalina.realm.RealmBase.Digest(RealmBase.java:1291) at org.apache.catalina.realm.RealmBase.main(RealmBase.java:1318) Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.buf.HexUtils at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more C:\Code\tomcattest>copy apache-tomcat-7.0.11\lib\catalina.jar apache-tomcat\lib Overwrite apache-tomcat\lib\catalina.jar? (Yes/No/All): y 1 file(s) copied. C:\Code\tomcattest>java org.apache.catalina.realm.RealmBase -a SHA mypass mypass:e727d1464ae12436e899a726da5b2f11d8381b26 C:\Code\tomcattest>