无法从TomCat上的Jar文件中加载类

时间:2019-02-27 22:22:56

标签: java eclipse tomcat

我正在尝试从webLogic迁移到Tomcat,并创建了2个动态项目Project 1和Project2。Project 1部署在Tomcat上,但需要运行Project 2的资源。

我在web.xml的几行代码下面

<display-name>project 1</display-name>
<description>Project 1 Application</description>

<!-- Http session monitor -->
<listener>
    <listener-class>HttpSessionMonitor</listener-class>
</listener>

但是当我启动tomcat时,出现“找不到Class Def错误”

我尝试了以下方法来解决此问题,但没有一个起作用。

  1. 在项目1的构建路径中添加了项目2的Jar文件。
  2. 在项目1的Deployment Assembly中添加了项目2的jar文件,项目2的jar文件(即project2.jar)显示在WEB_INF / lib文件夹中。
  3. 在项目1中创建一个新文件夹并链接项目2的资源

对此错误有任何建议吗? 我的项目1与项目2紧密相关,以至于没有项目2,项目1太笨了。

1 个答案:

答案 0 :(得分:0)

经过更多研究,我找到了自己的答案。

Tomcat类加载器正在按以下顺序加载资源

因此,从Web应用程序的角度来看,类或资源的加载按以下顺序显示在以下存储库中:

JVM的引导类 / WEB-INF /您的网络应用程序类 Web应用程序的/WEB-INF/lib/*.jar 系统类加载器类(如上所述) 通用类加载器类(如上所述) 如果将Web应用程序类加载器配置为,则顺序变为:

JVM的引导类 系统类加载器类(如上所述) 通用类加载器类(如上所述) / WEB-INF /您的网络应用程序类 Web应用程序的/ WEB-INF / lib / *。jar

所以当我将我的课程放在WEB-INF / classes文件夹中时,它开始工作。