2012-01-04 22 views
14

Al ejecutar mi aplicación JSF 2 en Eclipse estoy recibiendo varios registros de información que TLD se ha omitido porque ya está definido de la siguiente manera:¿Qué significa "INFO: TLD omitido. URI ya está definido" significa?

Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined 

Tengo curiosidad por saber, ¿qué significa este registro?

+0

Por favor absténgase de volver a enviar sus preguntas. – NullUserException

+2

publicación duplicada vinculada ha sido eliminada –

Respuesta

11

Esto significa que tiene archivos TLD duplicados en el classpath de tiempo de ejecución de su webapp. Como los TLD normalmente están contenidos en los archivos JAR de la biblioteca, esto a su vez significa que tiene archivos JAR duplicados en el classpath de tiempo de ejecución de su webapp.

Suponiendo que no ha tocado la carpeta /lib del servidor de aplicaciones ni las carpetas /lib del JDK, esos duplicados están en la carpeta /WEB-INF/lib de la compilación WAR. Limpiarlo.

3

orden de prioridad de los URI requeridos por las especificaciones es:

J2EE platform taglibs - Tomcat doesn't provide these 

web.xml entries 

JARS in WEB-INF/lib & TLDs under WEB-INF (equal priority) 

Additional entries from the container 

cargas Tomcat TLD dos veces.

1, cuando Tomcat se inicia, carga tld para buscar oyentes en archivos tld.

2, cuando se compila el primer archivo jsp, construye un caché de pares de tld.

1, TLD de carga para encontrar los oyentes en los archivos TLD

cuando se carga de web.xml, que pone taglib-uri uri de web.xml y de archivo TLD en un conjunto. Al cargar desde WEB-INF o jar, el uri es del archivo tld.

Tomcat necesita evitar la duplicación de la escucha del oyente de tld, por lo que comprueba si existe uri en el conjunto. Si uri ya existe, registra los mensajes que publique y omita agregar oyente de tld.

2, construir caché

1) entradas Web.xml, el URI etiqueta se obtuvo de web.xml

2) archivos TLD de análisis con WEB-INF, el URI de etiqueta se obtuvo de archivos tld

3) escanear frascos, la etiqueta uri se obtiene de archivos tld.

Si ya existe uri, la entrada se ignorará.

0

Significa, por ejemplo, si utiliza Tomcat y Maven (u otros servidores) que envía una biblioteca JSTL que ya se encuentra en el servidor y el servidor se queja.

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

En el momento se ha desplegado que la aplicación (en Tomcat), entonces obtendrá el mensaje de error:

INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined 
Mar 02, 2017 2:19:32 PM org.apache.catalina.startup.TaglibUriRule body 

La solución es utilizar la etiqueta 'alcance' y un valor de 'proporcionada' porque JSTL se entrega ya con Tomcat (que es sólo para su IDE):

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>provided</scope> 
    </dependency> 

a continuación, el error desaparecerá.