maven 工程启动找不到 Spring ContextLoaderListener 的解决办法

用maven 工程搭建项目,在搭建好之后,运行时却抛出了这样的错误:

严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 

这说明根本没有找到我们在 web.xml 里面配置的 listener, 但maven 的pom.xml 里面已经配置相应的包,而且可以在java 工程的maven dependency jar 包里面找到, 这说明maven是没有问题的。
原因是,项目不是maven项目,我这个之前是普通的web项目,只是加上了一个pom.xml而已
需要修改的有两个地方

一 、
1.项目根目录下的.project文件,用记事本打开,加入以下代码(把原来的 节点和 替换了):

buildCommand>
org.eclipse.wst.jsdt.core.javascriptValidator




org.eclipse.jdt.core.javabuilder




org.eclipse.wst.common.project.facet.core.builder




org.eclipse.wst.validation.validationbuilder




org.eclipse.m2e.core.maven2Builder




org.maven.ide.eclipse.maven2Builder





org.maven.ide.eclipse.maven2Nature
org.eclipse.m2e.core.maven2Nature org.eclipse.jem.workbench.JavaEMFNature org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.wst.common.project.facet.core.nature
org.eclipse.jdt.core.javanature
org.eclipse.wst.jsdt.core.jsNature

2.项目根目录下的.classpath






一个classpathentry节点:





到这一步已经完成了,到eclipse中刷新项目,然后重新启动tomcat,错误已经解决!

在.classpath文

< classpathentry kind="output" path="WebContent/WEB-INF/classes"/>

把编译后的文件放到WEB-INF/classes下面

二 、
基本都是这样去解决,但是貌似对我来说不行,而且比较麻烦,需要修改 .project , .classpath 等文件。其实有更简单的办法.
在eclipse 里面, 参考如下配置:
maven 工程启动找不到 Spring ContextLoaderListener 的解决办法_第1张图片

  1. 右键单击工程项目 ->点击 properties
  2. 选择 Deployment Assembly
  3. 点击 Add -> Java Build Path Entries -> Next
  4. 选择 Maven Dependencies -> Finish -> Apply -> OK
  5. Clean project and server. 重启server

这样就能解决maven 下找不到 spring listener 的问题。一个最明显的变化是你的web 工程里面明显多了一个jar包。

maven 工程启动找不到 Spring ContextLoaderListener 的解决办法_第2张图片

你可能感兴趣的:(maven)