1

我在 JBoss 6x 中有一个 Web 应用程序(它是一个 ear 文件)。

访问 JSP 页面时 出现错误消息:绝对 uri: http://java.sun.com/jsp/jstl/core无法在 web.xml 或随此应用程序部署的 jar 文件中解析

JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

web.xml

<web-app      
    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_3_0.xsd"     
    version="3.0">

WEB-INF\lib 包含

jstl-1.2.jar

请指教,我在这里做错了什么?谢谢

4

1 回答 1

1

问题出在 JBoss 6x for .ear(企业档案)中的类加载器行为。我的耳朵文件里面有一个战争,它最终使用了它自己的类加载器——它总是只在 WEB-INF\lib 中查找 jar 文件。

我的 jstl-1.2.jar 位于 JBOSS_HOME\server\domain\lib 此位置的所有 jar 对 .ear 可见,但对其中的 .war 不可见。因此 JSP 找不到 jstl-1.2.jar

一旦我在战争中将 jstl-1.2.jar 放在 WEB-INF\lib 中,错误就消失了。这解释了问题和立即解决方案。

虽然我想为整个 .ear 提供一个类加载器(对于 .war 来说不是一个不同的类加载器)——不知道该怎么做——但这是一个不同的问题。

于 2012-08-29T11:14:42.613 回答