Java 未从TomCat上的Jar文件加载类

Java 未从TomCat上的Jar文件加载类,java,eclipse,tomcat,Java,Eclipse,Tomcat,我正在尝试从webLogic迁移到Tomcat,并创建了两个动态项目,项目1和项目2。项目1部署在Tomcat上,但需要项目2的资源才能运行 我在web.xml中提供了以下几行代码 <display-name>project 1</display-name> <description>Project 1 Application</description> <!-- Http session monitor --> <listen

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

我在web.xml中提供了以下几行代码

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

<!-- Http session monitor -->
<listener>
    <listener-class>HttpSessionMonitor</listener-class>
</listener>
项目1
项目1申请
HttpSessionMonitor
但是当我启动tomcat时,我得到“没有发现类Def错误”

我已经尝试了以下方法来解决这个问题,但没有一个有效

  • 在项目1的构建路径中添加了项目2的Jar文件
  • 在项目1的部署程序集中添加了项目2的Jar文件,项目2的Jar文件即project2.Jar显示在WEB_INF/lib文件夹中
  • 在项目1中创建了一个新文件夹,并链接了项目2的资源
  • 对这个错误有什么建议吗?
    我的项目1与项目2紧密相连,没有项目2,项目1是如此愚蠢。

    经过进一步研究,我找到了自己的答案

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

    因此,从web应用程序的角度来看,类或资源加载按以下顺序查看存储库:

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

    • JVM的引导类
    • 系统类加载器类(如上所述)
    • 通用类加载器类(如上所述)
    • /WEB应用程序的WEB-INF/类
    • /WEB应用程序的WEB-INF/lib/*.jar
    当我将类文件放在WEB-INF/classes文件夹中时,它开始工作