【问题标题】:JSTL support in WeblogicWeblogic 中的 JSTL 支持
【发布时间】: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


【解决方案1】:

您必须在 WEB-INF/lib 文件夹中包含 jstl.jar 和 standard.jar,而不是在 WEB-INF 文件夹中。我想这会解决这个问题。

【讨论】:

  • 天哪,太简单了,太有帮助了。谢谢!
  • 我有同样的问题,我确保我在 lib 文件夹中有这些文件,但它仍然会发生......
【解决方案2】:

在 weblogic.xml 中添加 library-ref:

jstl1.2

jstl库默认部署在WebLogic中,所以不用担心。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 2011-07-25
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    相关资源
    最近更新 更多