为什么tomcat不能很好地读取我的web-inf/lib目录中有告诉文件的JSTL jar,但当我移动到jBoss 5时却不能?
是类加载器问题吗?
我试过研究,但没有明确的答案。我读了大量与类加载器相关的文章,但不确定它如何实际应用于我的应用程序。
如有任何帮助,不胜感激。
提前感谢阿西夫
Tomcat是一个简单的JSP/Servlet容器,仅随JSP和Servlet api一起发布。JBoss是一个更成熟的Java EE应用服务器,它几乎附带了整个Java EE API,包括JSTL。
当你将JSTL与你自己的web应用一起发布时,那么它的API/impl版本很有可能与JBoss已经使用的版本冲突。JBoss将加载它自己的JSTL API (jstl.jar
),但是web应用将加载JSTL impl (standard.jar
)。实际上,您应该从web应用程序中删除JSTL jar,并使用JBoss jar。为了让JSTL在Tomcat上为相同的web应用程序工作,您还可以将jar添加到Tomcat自己的/lib
文件夹中。这样,部署到Tomcat的每个web应用程序都可以使用JSTL,而不需要在/WEB-INF/lib
中包含jar。