【发布时间】:2011-07-22 00:09:22
【问题描述】:
我正在尝试使用 Weblogic 开始使用 Java EE,但我无法使 JSTL 标记工作,在最简单的代码中我在部署我的应用程序时遇到以下错误:
index.jsp:1:4: 没有标签库可以 使用此 URI 找到。可能的原因 可能是 URI 不正确,或者 解析过程中出现错误 .tld 文件。
^----^ index.jsp:1:4: 无标签 可以使用此 URI 找到库。 可能的原因可能是 URI 是不正确的,或者有 .tld 解析期间的错误 文件。
^----^ index.jsp:2:4: 无标签 可以使用此 URI 找到库。 可能的原因可能是 URI 是不正确的,或者有 .tld 解析期间的错误 文件。
^----^ index.jsp:2:4: 无标签 可以使用此 URI 找到库。 可能的原因可能是 URI 是不正确的,或者有 .tld 解析期间的错误 文件。
我从这个网站下载了 taglib 文件:http://archive.apache.org/dist/jakarta/taglibs/standard/ 并将两个罐子(standard.jar 和 jstl.jar)放在我的 WEB-INF 目录下。我还将存档中的所有 tld 文件放在那里。 我尝试在我的 web.xml 文件中引用它们,验证后我收到以下错误:
XML 验证已开始。检查 文件:/C:/Users/Brodyaga/Documents/NetBeansProjects/Eshop1/web/WEB-INF/web.xml... 参考实体在 “nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/XMLSchema.dtd”。 参考实体在 “nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/datatypes.dtd”。 cvc-complex-type.2.4.a:无效 发现内容以 元素“标签库”。之一 '{"http://java.sun.com/xml/ns/javaee":description, “http://java.sun.com/xml/ns/javaee”:显示名称, "http://java.sun.com/xml/ns/javaee":icon, “http://java.sun.com/xml/ns/javaee”:可分发, "http://java.sun.com/xml/ns/javaee":context-param, “http://java.sun.com/xml/ns/javaee”:过滤器, "http://java.sun.com/xml/ns/javaee":filter-mapping, “http://java.sun.com/xml/ns/javaee”:监听器, "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”:错误页面, "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”:安全角色, "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}' 是期待。 [12] XML 验证 完成了。
我的 web.xml 如下:
<?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>
我相信 web.xml 开头指定的 xml 架构不允许 taglib 标记,但我不知道应该使用什么架构。
我真的很感激一些关于向 weblogic 添加 jstl 支持的分步教程。提前致谢。
更新
从 web.xml 中删除那些
index.jsp:18:14:标签处理程序类 没有找到 “org.apache.taglibs.standard.tag.rt.core.ForEachTag”。
并且通过 c.tld 文件的内容清楚地表明 weblogic 理解 forEach 对应于 org.apache.taglibs.standard.tag.rt.core.ForEachTag,但无法找到该类。但是我可以在standard.jar中手动找到这个类。
【问题讨论】:
-
哪个版本的weblogic?这决定了您使用的 servlet/JSP 版本。
-
11g 第 1 版 (11.1.1.4)
标签: java jakarta-ee weblogic jstl web.xml