gpt4 book ai didi

java - 类不从 TomCat 上的 Jar 文件加载

转载 作者:行者123 更新时间:2023-11-28 23:12:54 25 4
gpt4 key购买 nike

我正在尝试从 webLogic 迁移到 Tomcat,并创建了 2 个动态项目,项目 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>

但是当我启动 tomcat 时,我得到“No Class Def found Error”

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

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

对于这个错误有什么建议吗?我的项目 1 非常依赖于项目 2,如果没有项目 2,项目 1 就太笨了。

最佳答案

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

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

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

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

如果 Web 应用程序类加载器配置为,则顺序变为:

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

当我将我的类文件放在 WEB-INF/classes 文件夹中时,它开始工作了。

关于java - 类不从 TomCat 上的 Jar 文件加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54915461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com