java.lang.ClassNotFoundException:org.springframework.web.context.request.RequestContextListener

好吧,我正在尝试在tomcat中运行我的Web应用程序,但是我收到以下错误:

Nov 18, 2013 12:19:35 AM org.apache.catalina.core.StandardContext listenerStart Grave: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener 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:4638) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5199) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) 

我的项目有效,有些类有奇怪的错误,如下所示:“JOIN FETCH表达式不能用标识变量定义。” 当我运行“Maven – > Update Project”时,“JOIN FETCH ..”中的错误消失,但我继续不启动我的服务器。

编辑1:我的pom.xml

  4.0.0 br.com.sender Sender war 1.0-SNAPSHOT sender App http://maven.apache.org  3.0.6.RELEASE     org.primefaces.extensions primefaces-extensions 0.7.1   com.sun.faces jsf-api 2.1.6   com.sun.faces jsf-impl 2.1.6   javax.servlet jstl 1.2   javax.servlet servlet-api 2.5   javax.persistence persistence-api 1.0   org.springframework spring-core ${org.springframework.version}   org.springframework spring-expression ${org.springframework.version}   org.springframework spring-beans ${org.springframework.version}   org.springframework spring-aop ${org.springframework.version}   org.springframework spring-context ${org.springframework.version}   org.springframework spring-context-support ${org.springframework.version}   org.springframework spring-tx ${org.springframework.version}   org.springframework spring-jdbc ${org.springframework.version}   org.springframework spring-orm ${org.springframework.version}   org.springframework spring-web ${org.springframework.version}    org.springframework.security spring-security-core ${org.springframework.version}   org.springframework.security spring-security-web ${org.springframework.version}   org.springframework.security spring-security-config ${org.springframework.version}   org.hibernate hibernate-entitymanager 3.4.0.GA   c3p0 c3p0 0.9.1.2   cglib cglib-nodep 2.2.2   org.hibernate hibernate-validator 4.0.2.GA   postgresql postgresql 9.1-901.jdbc4   javassist javassist 3.12.1.GA   org.slf4j slf4j-api 1.6.1   org.slf4j slf4j-simple 1.6.1   asm asm-commons 3.1   net.sf.ehcache ehcache 2.7.4   org.primefaces primefaces 3.5   org.primefaces.themes bootstrap 1.0.9   log4j log4j 1.2.17   commons-io commons-io 2.4   commons-fileupload commons-fileupload 1.3   javax.annotation jsr250-api 1.0     prime-repo PrimeFaces Maven Repository http://repository.primefaces.org default   java.net2 Java.net https://oss.sonatype.org/content/repositories/java.net2    sender   org.apache.maven.plugins maven-pmd-plugin 2.5  1.6      src/main/resources     

对于此错误,可以有不同的解决方案。 我记下那些对我有用的东西。

解决方案1.这总是发生在部署和调试环境中。 在部署环境中,只需确保您的服务器类路径包含Spring jar库(例如spring-4.0.4.jar)。

在调试环境中,步骤可能因IDE而异,但解决方案是相同的。 在Eclipse中,开发人员通常会创建一个tomcat,jboss …无论用于调试的应用程序服务器,只需确保包含正确的Spring jar。

  1. 双击调试服务器单击“打开启动”
  2. 配置“访问服务器环境点击classpath选项卡在这里包含Spring jar文件,由于Spring依赖,它可能还需要常见的日志jar。
  3. 完成后,再次运行您的应用程序。

解决方案2 。 如果您使用Maven作为构建工具并使用它来下载依赖项,则可能存在一些jar冲突。 因为Tomcat服务器通常提供一些jar,例如servlet-api和jpa-api。 所以,如果你再次使用maven包含它们; 识别它们会有问题。

解决方案3 。 如果您使用Eclipse作为IDE并使用Maven作为构建工具并使用tomcat作为服务器; 记住Tomcat服务器不会查看文件夹内的jar。 为此,有一个小技巧,

  1. 右键单击您的项目并选择属性从显示的窗口中,

  2. 选择部署程序集

  3. 选择添加

  4. 添加Maven依赖项

  5. 单击Apply,然后单击OK

希望其中一个解决方案可以帮助您解决问题。 快乐编码并确保使用Java。

在eclipse中 – >您的项目 – >属性 – > Java构建路径 – >订单和导出 – >检查Maven依赖项。 或者在WebProject – >您的项目 – >属性 – >部署组件 – >检查Maven依赖项。 这个工作在我的情况下。

我遇到了类似的问题,同样的例外是“java.lang.ClassNotFoundException:org.springframework.web.context.request.RequestContextListener”。

它在src / main / java文件夹中添加一个虚拟类后修复了,我真的不知道这是怎么做的,它对我有用。