java.lang.NoClassDefFoundError:org / springframework / context / EnvironmentAware
我正在使用spring mvc创建一个Web应用程序。 我已经开始合并Spring Security库。 我现在在tomcat日志中遇到以下错误,当我尝试使用eclipse将其部署到tomcat时。
我在我的库中使用以下jar版本
- spring framework 3.1.1.RELEASE
- spring框架安全版本3.1.0.RELEASE
我也使用STS版本的eclipse,maven和vmware vfabric tc Server(捆绑了sts)。
这是tomcat日志
SEVERE: Exception starting filter springSecurityFilterChain java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:98) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257) 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:680) Caused by: java.lang.ClassNotFoundException: org.springframework.context.EnvironmentAware at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) ... 30 more
这是我的web.xml文件
<!-- Display Name is used vides a short name for the application, which will be displayed in the Tomcat Manager application. When used in , this tag provides a name for the security constraint. --> ImaginateFramework index.jsp spring org.springframework.web.servlet.DispatcherServlet 1 spring / spring *.html|*.htm|*.xhtm|*.jsp|*.jsf|*.php|*.pl|*.cf springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /*
这是我的spring-servlet.xml文件
classpath:hibernate.cfg.xml org.hibernate.cfg.AnnotationConfiguration ${jdbc.dialect} true /WEB-INF/tiles.xml
(编辑)pom.xml
4.0.0 myapp MyApp war 0.0.1-SNAPSHOT App org.apache.maven.plugins maven-war-plugin 2.1.1 org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 3.1.1.RELEASE 3.1.0.RELEASE 3.0.0 UTF-8 commons-beanutils commons-beanutils 1.8.0 commons-digester commons-digester 2.0 log4j log4j 1.2.16 org.slf4j slf4j-api 1.5.8 org.slf4j slf4j-log4j12 1.4.2 org.apache.tiles tiles-api ${org.apache.tiles} org.apache.tiles tiles-core ${org.apache.tiles} org.apache.tiles tiles-jsp ${org.apache.tiles} org.apache.tiles tiles-servlet ${org.apache.tiles} org.apache.tiles tiles-template ${org.apache.tiles} javax.servlet servlet-api 2.5 <!-- org.springframework.webflow spring-webflow 2.3.1.RELEASE --> org.springframework.security spring-security-web ${org.springframework.security.version} org.springframework.security spring-security-config ${org.springframework.security.version} org.springframework spring-beans ${org.springframework.version} org.springframework spring-jdbc ${org.springframework.version} org.springframework spring-web ${org.springframework.version} org.springframework spring-webmvc ${org.springframework.version} org.springframework spring-orm ${org.springframework.version} hibernate hibernate-entitymanager 3.4.0.GA taglibs standard 1.1.2 javax.servlet jstl 1.2 mysql mysql-connector-java 5.1.10 commons-dbcp commons-dbcp 20030825.184428 commons-pool commons-pool 20030825.183949 org.apache.commons commons-lang3 3.1
EnvironmentAware位于spring-context-3.1.1.RELEASE.jar中,因此您缺少那个。
还要重新检查你的Maven POM文件,这样你就不会错过任何其他Spring库,比如spring-web,spring-webmvc(如果找到DispatcherServlet类,你可能会有这些),如果你使用像Hibernate这样的ORM,那么spring-orm,spring -jms如果你使用JMS等
您缺少运行时类路径上的spring-mvc jar。 导航到爆炸的战争并确保lib
目录中存在spring-webmvc-3.1.1.RELEASE.jar。
尝试清理项目,然后重新部署项目。 如果它仍然不起作用,请检查您的弹簧库是否有任何库。