eclipse/tomcat: deploy 不再起作用 (ClassNotFoundException)

我正在运行Eclipse Helios Service Release 1,在Linux Ubuntu Natty Narwhal中使用Tomcat 7.0.12。

我很高兴地重新部署我的web应用程序,直到它停止工作,显然没有理由。将显示以下异常:

SEVERE: Allocate exception for servlet Index
java.lang.ClassNotFoundException: obliquid.servlet.Index
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
  • 在“服务器”选项卡中,我有“Tomcat v7.0 Server at localhost [已启动,已同步]
  • 我的项目显示为 Tomcat v7.0 Server 的子级
  • 在“属性”、“Java 构建路径”、“源”项目中/src“源”文件夹中
  • 在属性,Web部署程序集中,我有以下映射:/WebContent -> //src -> /WEB-INF/classes/test -> /build/classes
  • 我的 src 目录包含一个 Servlet in obliquid/servlet/Index.java
  • 我已经尝试单击“清理模块工作目录...”发布
  • 我试图从 Eclipse 服务器选项卡中停止和启动服务器

我还应该检查什么?谢谢。

更新尽管现在我正在处理新项目,但我回来检查旧项目,神秘地现在它正在工作。我想我将无法找到发生了什么。

然而,今天在新项目中,我遇到了404错误,没有明显的原因,我发现右键单击Tomcat服务器并选择“清理...”可能是有用的。也许它本可以有所帮助。

选择“清洁...”说:“Clean将丢弃所有发布状态并从头开始重新发布。是否确实要清理所有已发布的资源?选择“是,我解决了问题”

更新 2这在新项目中再次发生。404错误,这次他们不会消失。

Stop -> Clean... -> Start (404)
Stop -> Clean Tomcat Work Directory... -> Start (404)
Stop -> Clean Tomcat Work Directory... -> Clean... -> Start (404)
Stop -> Remove on the application ->  Clean... -> Run As -> Run on Server -> (404)  
Exit Eclipse, Start Eclipse
Start the server -> (404)

更新 3事实证明,这次我只是没有注意到在启动期间由侦听器类引起的异常。解决问题后,它起作用了。我想我应该在凌晨3点停止工作。


答案 1

在Tomcat 6和Eclipse Ganymede上,我发现以下链条就像魅力一样工作:

1 个停止服务器

2.项目->清洁

3 个项目构建(我禁用了自动构建)

4 删除服务器

5 删除服务器文件夹

6 重启日食

7 创建新服务器,添加项目并启动:)

需要一些时间,但像魅力一样工作。我的问题是一个令人讨厌的听众启动问题,但这似乎是类似的东西:tomcat的一个属性。顺便说一句:现在我也是玻璃鱼的忠实粉丝。


答案 2

我发现这个过程很有用:

  • 单击“服务器”选项卡,如果服务器正在运行,则停止使用中的服务器
  • 再次右键单击服务器,然后选择“清理...”
  • 再次右键单击并选择清理Tomcat工作目录...

希望ClassNotFoundException现在应该消失了。

还有一次,我在服务器启动时启动的类遇到了问题,这是侦听器类(ServletContextListener)中的异常。当 ServletContextListener 在启动期间引发异常时,应用程序部署将中止,因此出现 404 错误。在这种情况下,修复导致异常的问题,使应用程序再次工作。

编辑:这个较短的程序在大多数情况下对我有用,但今天不起作用,我不得不遵循Mico的扩展程序。我的建议是,如果你有类似的问题,首先尝试这个较短的程序。如果问题仍然存在,请尝试使用Mico的。


推荐