When starting Tomcat 8 on Arch Linux ARM I get the following warning:
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debu
I wrote a script to find all jars that don't contain a TLD:
#!/bin/sh
TOMCAT_HOME=/opt/tomcat
for i in `find $TOMCAT_HOME -follow -name "*jar"`
do
jar tvf $i | grep -i tld > /dev/null
if [ $? -ne 0 ]; then
echo "$(basename $i),\\"
fi
done
Edit the TOMCAT_HOME to match your installation, The script produces a list on the form:
jar1.jar,\
jar2.jar,\
...
that may be pasted into catalina.properties at:
org.apache.catalina.startup.TldConfig.jarsToSkip=
An easier way, in step 1 of the above post, instead of enabling debugging for everything, limit to org.apache.jasper:
Use this:
org.apache.jasper.level = FINEST
Instead of this:
org.apache.catalina.level=FINEST
Try debugging for everything by:
Adding this to the end of your logging.properties
file located in {CATALINA-HOME}/conf
:
#To see the most detailed level of logging for all classes, uncomment the following line:
org.apache.catalina.level=FINEST
Restart Tomcat
Run the following from Terminal to get a list of jars that need to be skipped (courtesy of @joseph-lust on this post):
egrep "No TLD files were found in \[file:[^\]+\]" {CATALINA-HOME}/logs/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > ~/skips.txt
Open skips.txt
in your user home directory
Add this list to {CATALINA-HOME}/conf/catalina.properties
after the following line:
org.apache.catalina.startup.TldConfig.jarsToSkip=
I am still not sure why this happens, as it seems to work for most to uncomment the TldLocationsCache
line.