【问题标题】:java.lang.NoClassDefFoundError: org/springframework/web/context/ContextCleanupListenerjava.lang.NoClassDefFoundError: org/springframework/web/context/ContextCleanupListener
【发布时间】:2011-11-17 16:35:41
【问题描述】:

我有一个使用 spring 框架构建的 webapp。我正在尝试使用 Eclipse 将其部署到 Tomcat6。每次我对 jsp 文件进行更改时,我都必须清理构建,发布它然后启动服务器。我相信,我们不必为 JSP 更改执行所有这些步骤。如果我只是发布文件,当服务器运行时,我会得到以下异常

严重:向 org.springframework.web.context.ContextLoaderListener 类的侦听器实例发送上下文破坏事件的异常 java.lang.NoClassDefFoundError: org/springframework/web/context/ContextCleanupListener

严重:向 org.springframework.web.util.Log4jConfigListener 类的侦听器实例发送上下文破坏事件的异常 java.lang.NoClassDefFoundError: org/springframework/util/Log4jConfigurer

war 文件没有部署到服务器中。

如果我对 JSP 文件进行更改然后在 Eclipse 中单击重新启动,它有时会发布文件然后启动服务器。但在某些情况下,它会重新启动服务器然后发布文件(在这种情况下,我得到了上述异常并且没有部署 war 文件)。

理想的工作方式是,停止服务器,发布内容,然后启动服务器。每次我进行简单的 jsp 更改时,我都讨厌这样做。是否有任何替代的一键式过程来执行此操作?

【问题讨论】:

    标签: java eclipse spring tomcat deployment


    【解决方案1】:

    您在 Eclipse 中设置项目或服务器的方式有问题。我建议遵循here 的说明。此外,您可能想要下载STS(Eclipse 已经与 Spring 支持捆绑在一起)并使用它来代替 vanilla eclipse。

    【讨论】:

      【解决方案2】:

      确保 spring 与您的应用程序一起部署。在 eclipse 中设置正确的导出选项或将 spring 库复制到 /WEB-INF/lib。

      MyEclipse 在这里工作正常。您也可以查看JRebel。他们宣传没有重新部署。 ;)

      【讨论】:

        【解决方案3】:

        您可以使用爆炸式战争和增量热部署。

        这应该可以http://www.youtube.com/watch?v=OMtcjgTyP-g

        2:30 关注

        【讨论】:

          猜你喜欢
          • 2015-02-04
          • 2013-04-06
          • 1970-01-01
          • 2017-02-19
          • 2014-04-15
          • 2021-05-28
          • 1970-01-01
          • 2015-10-14
          • 2017-06-03
          相关资源
          最近更新 更多