基本问题复杂的解决方案 - Tomcat到JBoss

时间:2011-09-27 00:23:30

标签: jstl classloader jboss5.x

为什么tomcat不能很好地读取我的web-inf / lib目录中存在tld文件的JSTL jar文件,但是当我转移到jBoss 5时却不行?

这是一个类加载器问题吗?

我尝试过研究,但没有明确的答案。我阅读了一篇很大的类加载器相关文章,但不确定这实际上如何适用于我的应用程序。

任何帮助都将不胜感激。

提前致谢 阿西

1 个答案:

答案 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。