当前位置:  开发笔记 > 编程语言 > 正文

在Tomcat 5上控制WEB-INF/lib中jar的类路径排序?

如何解决《在Tomcat5上控制WEB-INF/lib中jar的类路径排序?》经验,为你挑选了1个好方法。

我有一个在Tomcat 5.0中运行的遗留Web应用程序.

这个Web应用程序在WEB-INF/lib中有两个jar,比如说Foo-2.0.jarBar-2.0.jar.Bar-2.0.jar实际上包含了一个Foo-1.0.jar.Bar也是一个死的项目,意味着没有升级,没有来源,但对应用程序仍然很重要.

该应用程序的最新版本需要Foo-2.0.jar来处理其他一些内容.在类路径中同时具有Foo-1.0.jarFoo-2.0.jar会产生冲突,特别是ClassDefNotFound类型的错误,其中稍后在2.0中添加的类无法在1.0中找到,等等.

在Eclipse中,简单的解决方案是右键单击您的Project,单击Properties > Java Built Path > Order and Export并将Foo-2.0.jar移到Bar-2.0.jar之上,以便首先解析它.

如何在Tomcat的WEB-INF/lib中为jar实现这种类型的路径排序?



1> BalusC..:

Tomcat 5的 webapps 类加载优先级大致如下:首先是bootstrap/system(JRE/lib然后是Tomcat的内部类),然后是webapp库(首先是WEB-INF/classes,然后是WEB-INF/lib),然后是公共库(首先是Tomcat/common,然后是Tomcat/lib),最后是webapp-shared库(Tomcat/shared).

因此得到Foo-2.0.jar加载之前 Bar-2.0.jar,最好你可以做的是将Bar-2.0.jar来自WEB-INF/libTomcat/commonTomcat/shared.

JAR未按名称的字母顺序加载.至少,没有规范说明这一点.重命名它们以更改按字母顺序排列的文件名顺序是没有意义的.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有