Eclipse中Tomcat下的Java ClassNotFoundException

时间:2015-04-16 01:00:30

标签: java eclipse maven tomcat

我一直在处理在Eclipse中Tomcat下运行Java Web应用程序的ClassNotFoundException的现有帖子。

我无法提供源代码和配置工件,因为我正在开发专有代码库。然而,通过反复试验,我将问题归结为其基本要素。

我将Maven打包的项目作为WAR。主工具包所依赖的工作空间中有许多其他项目。这种安排一直很好:我可以在Eclipse中的Tomcat实例下部署WAR和它依赖的JAR,应用程序运行,我可以调试它。

现在我创建了一个新项目,目前包含一个带有公共构造函数的公共类。 maven构建工作正常,Eclipse编译工作区正常工作。但是,当我部署到Tomcat并执行在新项目中实例化类的执行路径时,我得到一个ClassNotFoundException。

我检查了以下项目:

  • 主程序包项目的Web部署程序集指定WEB-INF / lib /作为新项目的部署路径;
  • 新项目的JAR实际上最终位于实际部署文件夹下的WEB-INF / lib /文件夹中;
  • 当我在服务器上进行干净并发布时,实际部署文件夹的内容实际上已经被修复并且被所有正确的JAR重新填充;
  • 新项目的JAR,因为我发现部署文件夹中的WEB-INF / lib确实包含我试图实例化的类;
  • Tomcat日志(包括启动周期)除了ClassNotFoundException之外不包含任何错误;
  • 我重新完成了Maven构建,并多次将Maven构建应用于Eclipse项目;
  • 我已多次在Eclipse中清理和重建;
  • 我已经无数次地清理并重新发布到Eclipse中的Web服务器;
  • 我创建了几个新的服务器实例。

基于ClassNotFoundException-in-Tomcat问题的现有讨论,这些是我发现要检查的唯一内容。我还应该研究什么呢?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

即使对我来说也出现了同样的问题....我已经清理了Tomcat和Tomcat工作目录并再次运行项目它工作得很好......

这可能是因为缓存,有时在构建应用程序时未正确清理缓存。

有时从eclise中删除项目并从头开始再次导入它也将解决问题

答案 1 :(得分:0)

我不确定到底出了什么问题。但是,我最终解决了这个问题,方法是从工作区中删除项目,从头开始重新创建项目,然后将我的类导入重新创建的项目中。