jueves, 26 de septiembre de 2013

c:out not parsing value

c:out not parsing value

When you use an expression like
<c:out value="${value}"/>

and the value is showed as a literal and does not replace the contained value, use

<%@ page isELIgnored="false"%>

At least one JAR was scanned for TLDs yet contained no TLDs

Where are my TLDs?!

The most common scenario for a simple application is using the jstl.jar library that contains useful tag libs such as "http://java.sun.com/jsp/jstl/core" and others.
After adding the library and making a simple
<c:out value="${value}"/>
the browser shows "value" and in the logs we see a warning saying

At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

Understanding Tomcat file skipping

For an improvement in loading times, tomcat has inside catalina.properties the list of files that will be skipped.
Find the line that says tomcat.util.scan.DefaultJarScanner.jarsToSkip = and search for the file that contains the TLDs.
In my case is jstl.jar, and remove it from the list.