繁体   English   中英

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

[英]Classes not loading from Jar file on TomCat

我正在尝试从 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 的 Build 路径中添加了项目 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 应用程序的 /WEB-INF/classes
  • 您的 Web 应用程序的 /WEB-INF/lib/*.jar
  • 系统类加载器类(如上所述)
  • 常见的类加载器类(如上所述)

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

  • JVM 的引导类
  • 系统类加载器类(如上所述)
  • 常见的类加载器类(如上所述)
  • 您的 Web 应用程序的 /WEB-INF/classes
  • 您的 Web 应用程序的 /WEB-INF/lib/*.jar

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM