我在JBoss 6x中有一个Web应用程序(它是一个ear文件)。
访问JSP页面时出现错误消息: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:http://java.sun.com/jsp/jstl/core
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
请指教,我在这里做错了什么?感谢
答案 0 :(得分:1)
问题原来是JBoss 6x for .ear(企业档案)中的类加载器行为。我的ear文件里面有一个war,它最终使用自己的类加载器 - 它总是只在WEB-INF \ lib中查找jar文件。
我的jstl-1.2.jar位于JBOSS_HOME \ server \ domain \ lib中 这个位置的所有罐子都可以看到.ear,但不能看到里面的.war。因此JSP无法找到jstl-1.2.jar
一旦我在战争中将jstl-1.2.jar放入WEB-INF \ lib中,错误就消失了。 这解释了问题并立即解决。
虽然我想为整个.ear设置一个类加载器(对于.war来说不是另一个) - 不确定如何做到 - 但这是一个不同的问题。