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

sti*_*vlo 22 java eclipse linux tomcat classnotfoundexception

我在Linux Ubuntu Natty Narwhal中运行Eclipse Helios Service Release 1和Tomcat 7.0.12.

我一直很高兴热重新部署我的webapp,直到它显然没有理由停止工作.显示以下异常:

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)
Run Code Online (Sandbox Code Playgroud)
  • Servers选项卡中我"在localhost上运行Tomcat v7.0 Server [已启动,已同步]
  • 我的项目显示为Tomcat v7.0 Server的子项
  • 在Properties,Java Build Path,Source我是Project/src Source文件夹中
  • 在Properties,Web Deployment Assembly中,我有以下映射:/ WebContent - > /,/ src - > / WEB-INF/classes,/ test - > / build/classes
  • 我的src目录在obliquid/servlet/Index.java中包含一个Servlet
  • 我已经尝试点击清洁模块工作目录...发布
  • 我试图从Eclipse Servers选项卡中停止并启动Server

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

更新尽管现在我正在使用新项目,我回来检查旧项目,并且神秘地现在它正在工作.我想我无法找到发生的事情.

然而今天在新项目中,我有404错误没有明显的原因,我发现右键单击Tomcat服务器并选择"Clean ..."可能很有用.也许它可能有所帮助.

选择"Clean ..."说:"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)
Run Code Online (Sandbox Code Playgroud)

更新3事实证明,这次我没有注意到启动时监听器类引起的异常.解决问题后,它起作用了.我猜我应该在凌晨3点停止工作.

mic*_*ico 37

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

1站服务器

2项目 - >清洁

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

4删除服务器

5删除Servers文件夹

6重启Eclipse

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

需要一些时间,但工作就像魅力.我的问题是一个令人恼火的Listener启动问题,但这似乎是类似的东西:tomcat的一个属性.顺便说一句:现在我也是一个大型的Glassfish粉丝.


sti*_*vlo 12

我发现这个程序很有用:

  • 单击Servers选项卡,如果正在运行,则停止正在使用的服务器
  • 再次右键单击服务器并选择Clean ...
  • 再次右键单击并选择Clean Tomcat Work Directory ...

希望ClassNotFoundException现在应该消失了.

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

编辑:这个较短的程序大部分时间都适用于我,但今天没有用,我不得不遵循Mico的扩展程序.我的建议是,如果你有类似的问题,首先尝试这个较短的程序.如果问题仍然存在,请尝试使用Mico.