java - Soporte JSTL en Weblogic
java-ee web.xml (2)
Estoy tratando de comenzar a trabajar con Java EE usando Weblogic, y no puedo hacer que las etiquetas JSTL funcionen, en el código más simple obtengo los siguientes errores al implementar mi aplicación:
index.jsp: 1: 4: no se pudo encontrar ninguna biblioteca de etiquetas con este URI. Las posibles causas podrían ser que el URI es incorrecto o que hubo errores durante el análisis del archivo .tld. <% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>
^ ---- ^ index.jsp: 1: 4: No se pudo encontrar ninguna biblioteca de etiquetas con este URI. Las posibles causas podrían ser que el URI es incorrecto o que hubo errores durante el análisis del archivo .tld. <% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>
^ ---- ^ index.jsp: 2: 4: No se pudo encontrar ninguna biblioteca de etiquetas con este URI. Las posibles causas podrían ser que el URI es incorrecto o que hubo errores durante el análisis del archivo .tld. <% @ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql"%>
^ ---- ^ index.jsp: 2: 4: No se pudo encontrar ninguna biblioteca de etiquetas con este URI. Las posibles causas podrían ser que el URI es incorrecto o que hubo errores durante el análisis del archivo .tld. <% @ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql"%>
Descargué archivos taglib de este sitio web: http://archive.apache.org/dist/jakarta/taglibs/standard/ y puse dos jar (standard.jar y jstl.jar) en mi directorio WEB-INF. También puse allí todos los archivos tld del arcihve. Después de que intenté hacer referencia a ellos en mi archivo web.xml y después de la validación me sale el siguiente error:
La validación XML comenzó. Archivo de comprobación: / C: /Users/Brodyaga/Documents/NetBeansProjects/Eshop1/web/WEB-INF/web.xml ... Entidad a la que se hace referencia en "nbres: / org / netbeans / modules / j2ee / ddloaders / catalog / resources / XMLSchema.dtd ". Entidad a la que se hace referencia en "nbres: /org/netbeans/modules/j2ee/ddloaders/catalog/resources/datatypes.dtd". cvc-complex-type.2.4.a: Se encontró contenido no válido comenzando con el elemento ''taglib''. Uno de ''{"http://java.sun.com/xml/ns/javaee":description," http://java.sun.com/xml/ns/javaee":display-name, "http: / /java.sun.com/xml/ns/javaee":icon, "http://java.sun.com/xml/ns/javaee":distributable," http://java.sun.com/xml/ns / javaee ": context-param," http://java.sun.com/xml/ns/javaee":filter, "http://java.sun.com/xml/ns/javaee":filter-mapping, "http://java.sun.com/xml/ns/javaee":listener," http://java.sun.com/xml/ns/javaee":servlet, "http://java.sun.com / xml / ns / javaee ": servlet-mapping," http://java.sun.com/xml/ns/javaee":session-config, "http://java.sun.com/xml/ns/javaee ": mime-mapping", http://java.sun.com/xml/ns/javaee":welcome-file-list, "http://java.sun.com/xml/ns/javaee":error- página, "http://java.sun.com/xml/ns/javaee":jsp-config," http://java.sun.com/xml/ns/javaee":security-constraint, "http: / /java.sun.com/xml/ns/javaee":login-config, "http://java.sun.com/xml/ns/javaee":security-role," http://java.sun.com / xml / ns / javaee ": env-entry," http://java.sun.com/xml/ns/javaee":ejb-ref, "http : //java.sun.com/xml/ns/javaee ": ejb-local-ref," http://java.sun.com/xml/ns/javaee":service-ref, "http: // java .sun.com / xml / ns / javaee ": resource-ref," http://java.sun.com/xml/ns/javaee":resource-env-ref, "http://java.sun.com / xml / ns / javaee ": message-destination-ref," http://java.sun.com/xml/ns/javaee":persistence-context-ref, "http://java.sun.com/xml / ns / javaee ": persistence-unit-ref," http://java.sun.com/xml/ns/javaee":post-construct ", http://java.sun.com/xml/ns/javaee ": pre-destroy", http://java.sun.com/xml/ns/javaee":message-destination, "http://java.sun.com/xml/ns/javaee":locale-encoding- mapping-list} ''se espera. [12] Validación XML finalizada.
Mi web.xml es el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>
Creo que el esquema xml especificado al principio de web.xml no permite etiquetas taglib, pero no tengo idea de qué esquema debo usar.
Realmente podría aplicar un tutorial paso a paso para agregar soporte jstl a weblogic. Gracias por adelantado.
ACTUALIZACIÓN Eliminar los <taglib> ''s de web.xml termina con errores como los siguientes:
index.jsp: 18: 14: La clase del controlador de etiquetas no se encontró "org.apache.taglibs.standard.tag.rt.core.ForEachTag".
y por los contenidos del archivo c.tld es claro que weblogic entiende que forEach corresponde a org.apache.taglibs.standard.tag.rt.core.ForEachTag, pero no puede encontrar la clase. Pero puedo encontrar esta clase manualmente en standard.jar.
Debe incluir jstl.jar y standard.jar en la carpeta WEB-INF / lib, no en la carpeta WEB-INF. Supongo que eso resolverá este problema.
agregue la biblioteca-ref en weblogic.xml:
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"> <wls:library-ref> <wls:library-name>jstl</wls:library-name> <wls:specification-version>1.2</wls:specification-version> <wls:exact-match>false</wls:exact-match> </wls:library-ref> </wls:weblogic-web-app>
La biblioteca jstl se implementa por defecto en WebLogic, por lo que no te preocupes por ese lado.