为什么tomcat不能很好地读取我的web-inf / lib目录中存在tld文件的JSTL jar文件,但是当我转移到jBoss 5时却不行?
这是一个类加载器问题吗?
我尝试过研究,但没有明确的答案。我阅读了一篇很大的类加载器相关文章,但不确定这实际上如何适用于我的应用程序。
任何帮助都将不胜感激。
提前致谢 阿西
答案 0 :(得分:2)
Tomcat是一个简单的JSP / Servlet容器,仅与JSP和Servlet API一起提供。 JBoss是一个更加完善的Java EE应用服务器,几乎包含整个Java EE API,包括JSTL。
当您将JSTL与您自己的webapp一起发布时,其API / impl版本可能与JBoss已经使用的版本冲突的可能性很大。 JBoss将加载自己的JSTL API(jstl.jar
),但是webapp将加载JSTL impl(standard.jar
)。实际上,您应该从Web应用程序中删除JSTL JAR并使用JBoss JAR。为了让JSTL也能在Tomcat上使用相同的webapp,您还可以将JAR添加到Tomcat自己的/lib
文件夹中。这样,部署到Tomcat的每个Web应用程序都可以使用JSTL,而无需在/WEB-INF/lib
中包含JAR。