java.lang.NoClassDefFoundError:org / springframework / web / servlet / HttpServletBean:org / springframework / context / EnvironmentAware

时间:2013-12-29 19:37:29

标签: java spring noclassdeffounderror

我是这个论坛的新手。我正在尝试使用spring 3.2.6和tomcat 7.0创建一个应用程序。我在WEB-INF / lib文件夹中添加了所有必需的jar。 DispatcherServlet和ContextLoaderListener在web.xml中正确配置。相同的应用程序在spring 3.0.2版本上运行良好。现在,当我尝试打开jsp页面时,它给出了以下错误:

  

HTTP状态500 - org / springframework / web / servlet / HttpServletBean:   组织/ springframework的/上下文/ EnvironmentAware

     
     

输入例外报告

     

message org / springframework / web / servlet / HttpServletBean:   组织/ springframework的/上下文/ EnvironmentAware

     

description服务器遇到阻止它的内部错误   完成此请求。

     

例外

     

java.lang.NoClassDefFoundError:   org / springframework / web / servlet / HttpServletBean:   组织/ springframework的/上下文/ EnvironmentAware     java.lang.ClassLoader.defineClass1(本机方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     java.lang.ClassLoader.defineClass1(本机方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     java.lang.ClassLoader.defineClass1(本机方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)     org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)     org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589)     org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)     java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886)     java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908)     java.lang.Thread.run(Thread.java:662)

     

注意Apache中提供了根本原因的完整堆栈跟踪   Tomcat / 7.0.42日志。

罐子

  

弹簧上下文3.2.6.RELEASE

已添加到类路径中。我也可以从Eclipse打开类文件。但我不明白为什么它在运行时给出类未找到的错误。我试图在谷歌搜索它,但没有找到确切的解决方案。 提前谢谢。

4 个答案:

答案 0 :(得分:0)

班级org.springframework.web.servlet.HttpServletBeanspring-webmvc的一部分。您还需要将该库添加到类路径中。你可以得到它here

答案 1 :(得分:0)

如果它适用于旧版本(正如你所说),我猜有些地方你在路径中有旧jar,这搞乱了jar依赖 我建议你做一个完整的磁盘搜索,找出你所有的弹簧罐位置并清理它们。 BTW:您可以尝试将jar添加到tomcat / lib中进行尝试(这不是正确的做法,但这有助于找出它是否与路径相关)。

答案 2 :(得分:0)

EnvironmentAware位于spring-context-3.1.1.RELEASE.jar中,所以你错过了那个。

还要重新检查你的Maven POM文件,这样你就不会错过任何其他Spring库,比如spring-web,spring-webmvc(如果找到DispatcherServlet类,你可能会有这些文件),如果你使用ORM就可以使用spring-orm如果你使用JMS等,Hibernate,spring-jms

答案 3 :(得分:0)

我有这个问题。我通过添加jar来解决它:

org.springframework.context-3.1.0.RELEASE.jar

到构建路径和maven依赖项(java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet error

希望有所帮助