Tomcat和Spring Web - 未找到类异常org.springframework.web.context.ContextLoaderListener

Dev*_*Rao 33 java eclipse spring tomcat maven

当我尝试通过Eclipse启动Tomcat时(通过右键单击Project,Run As - > Run on Server),我得到以下异常.

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jun 12, 2011 8:46:11 PM org.apache.catalina.core.StandardContext listenerStart
Run Code Online (Sandbox Code Playgroud)

我正在使用Maven(m2eclipse)构建我的项目.我已经为Spring库添加了必要的依赖项,我可以在最终工件(包含类)的lib目录中看到spring-web.jar文件.当我在IDE之外部署应用程序时,它工作正常.

关于为什么会发生这种情况的任何指示都将受到高度赞赏.

Yoh*_*age 80

几天前我在Eclipse Indigo上使用m2eclipse(没有通过m2eclipse-extras提供的WTP集成添加)遇到了同样的问题.我创建了一个Maven Web模块并手动添加了动态Web模块方面.当我在Eclipse WST Tomcat服务器上部署它时,似乎我的Maven依赖项在项目发布到服务器时没有被推送到服务器.

解决方案很简单.在项目浏览器中右键单击您的Web项目 - >选择"属性".在项目属性下,选择"部署程序集".

Deployment Assembly属性页面显示Eclipse将作为组合工件发布到服务器的内容.您需要告诉Eclipse您希望发布所有Maven依赖项.

为此,单击"添加"按钮,然后选择"Java构建路径条目".单击"下一步",然后选择"Maven依赖项".当Eclipse将项目发布到WST服务器时,这会将Maven依赖项JAR文件发布到lib文件夹.

这种方法对我有用.

  • 这不适合我.我有一个Web项目A,它依赖于B通过pom.xml; "Maven依赖关系"已经在部署程序集中列出,与B一样.注意:B的部署路径是"WEB-INF/lib/B-0.1.0-SNAPSHOT.jar",它不会改变,具体取决于是否B是否在Eclipse中打开.Eclipse构建路径确实正确更改(Eclipse项目或我的仓库中的jar)以反映项目是否打开.我正在使用SpringSource Tool Suite 2.9.2.RELEASE.我仍然在运行时获得ClassNotFoundException,即使该类在Eclipse中解析得很好.难住了. (3认同)
  • 谢谢你!在这个问题上度过了很多令人沮丧的时间之后,这篇文章是一种阅读......看起来像一个魅力! (2认同)