java.lang.NoClassDefFoundError:org / springframework / context / EnvironmentAware [英] java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware
问题描述
我在我的库中使用以下jar版本
- spring框架版本3.1.1.RELEASE
- spring框架安全版本3.1.0.RELEASE
我也在使用STS版本的eclipse,maven和vmware vfabric tc服务器(与sts捆绑在一起)。
这是tomcat日志
SEVERE:异常启动过滤器springSecurityFilterChain
java.lang .NoClassDefFoundError:org / springframework / context / EnvironmentAware
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
在org.apache.catalina.loader.WebappClassLoader.findClassInternal( WebappClass Loader.java:2820)
在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1645)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang。 ClassLoader.defineClassCond(ClassLoader.java:631)
在java.lang.ClassLoader.defineClass(ClassLoader.java:615)
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
在org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
在org .apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
在org.apache.catalina .core.DefaultInstanceManager.load Class(DefaultInstanceManager.java:415)
在org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
在org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager。 java:118)
在org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
在org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
在org.apache.catalina.core.ApplicationFilterConfig。< init>(ApplicationFilterConfig.java:98)
在org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)$在$ org.apache.catalina.core.StandardContext $ 2.call(StandardContext.java:5257)
b java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)
在java.util.concurrent.FutureTask.run(FutureTask.java:138)
在java.util。 concurrent.ThreadPoolExecu tor $ Worker.runTask(ThreadPoolExecutor.java:886)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)
在java.lang.Thread.run(Thread。 java:680)
导致:java.lang.ClassNotFoundException:org.springframework.context.EnvironmentAware
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
... 30更多
这里是我的web.xml文件
<?xml version =1.0encoding = UTF-8 >?;
< web-app xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xmlns =http://java.sun.com/xml/ns / javaee
xmlns:web =http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
xsi:schemaLocation =http://java.sun .com / xml / ns / javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
id =WebApp_IDversion =2.5>
<! -
显示名称用于显示应用程序的简短名称,
将显示在Tomcat Manager应用程序中。
当在< security-constraint>中使用时,该标签为安全约束提供一个名称
。
- >
< display-name> ImaginateFramework< / display-name>
< welcome-file-list>
< welcome-file> index.jsp< / welcome-file>
< / welcome-file-list>
< servlet>
< servlet-name> spring< / servlet-name>
< servlet-class>
org.springframework.web.servlet.DispatcherServlet
< / servlet-class>
< load-on-startup> 1< / load-on-startup>
< / servlet>
< servlet-mapping>
< servlet-name> spring< / servlet-name>
< url-pattern> /< / url-pattern>
< / servlet-mapping>
< servlet-mapping>
< servlet-name> spring< / servlet-name>
< url-pattern> * .html | * .htm | * .xhtm | * .jsp | * .jsf | * .php | * .pl | * .cf< / url-pattern>
< / servlet-mapping>
<! - 安全配置 - >
< filter>
< filter-name> springSecurityFilterChain< / filter-name>
< filter-class> org.springframework.web.filter.DelegatingFilterProxy< / filter-class>
< / filter>
< filter-mapping>
< filter-name> springSecurityFilterChain< / filter-name>
< url-pattern> / *< / url-pattern>
< / filter-mapping>
这是我的spring-servlet .xml文件
<?xml version =1.0encoding =UTF-8 ?>
< beans xmlns =http://www.springframework.org/schema/beans
xmlns:security =http://www.springframework.org/schema/security
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexmlns:aop =http://www.springframework.org/schema/aop
xmlns:context = http://www.springframework.org/schema/context
xmlns:jee =http://www.springframework.org/schema/jeexmlns:lang =http://www.springframework。 org / schema / lang
xmlns:p =http://www.springframework.org/schema/pxmlns:tx =http://www.springframework.org/schema/tx
xmlns:util =http://www.springframework.org/schema/utilxmlns:mvc =http://www.springframework.org/schema/mvc
xsi:schemaLocation =http ://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/ SPRI ng-context.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
http:// www .springframework.org / schema / lang http://www.springframework.org/schema/lang/spring-lang.xsd
http://www.springframework.org/schema/tx http:// www。 springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http:// www .springframework.org / schema / security
http://www.springframework.org/schema/security/spring-security-3.1.xsd\">
< security:ldap-server />
< security:http auto-config ='true'>
< security:intercept-url pattern =/ **access =ROLE_USER/>
< / security:http>
< security:authentication-manager>
< security:authentication-provider>
< security:user-service>
< security:user name =adminpassword =password
authority =ROLE_USER,ROLE_ADMIN/>
< security:user name =bobpassword =bobauthority =ROLE_USER/>
< / security:user-service>
< / security:authentication-provider>
< / security:authentication-manager>
< context:annotation-config />
< context:component-scan base-package =com.imaginatelabs.imaginate_framework.mvc/>
< mvc:注释驱动/>
< mvc:resources location =/ images /mapping =/ images / **/>
< mvc:resources location =/ scripts /mapping =/ scripts / **/>
< mvc:resources location =/ themes /mapping =/ themes / **/>
< mvc:interceptors>
< bean id =localeChangeInterceptor
class =org.springframework.web.servlet.i18n.LocaleChangeInterceptor>
< property name =paramNamevalue =lang/>
< / bean>
< bean id =themeChangeInterceptor
class =org.springframework.web.servlet.theme.ThemeChangeInterceptor>
< property name =paramNamevalue =theme/>
< / bean>
< / mvc:interceptors>
< bean id =jspViewResolver
class =org.springframework.web.servlet.view.InternalResourceViewResolver>
< property name =viewClass
value =org.springframework.web.servlet.view.JstlView/>
< property name =prefixvalue =/ WEB-INF / jsp //>
< property name =suffixvalue =。jsp/>
< property name =ordervalue =1/>
< / bean>
< bean id =propertyConfigurer
class =org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
p:location =/ WEB-INF / jdbc。属性/>
< bean id =dataSourceclass =org.apache.commons.dbcp.BasicDataSource
destroy-method =closep:driverClassName =$ {jdbc.driverClassName p $ password =$ {jdbc.user} p:
<! - Hibernate组件 - >
< bean id =sessionFactory
class =org.springframework.orm.hibernate3.LocalSessionFactoryBean>
< property name =dataSourceref =dataSource/>
< property name =configLocation>
< value> classpath:hibernate.cfg.xml< / value>
< / property>
< property name =configurationClass>
< value> org.hibernate.cfg.AnnotationConfiguration< / value>
< / property>
< property name =hibernateProperties>
<道具>
< prop key =hibernate.dialect> $ {jdbc.dialect}< / prop>
< prop key =hibernate.show_sql> true< / prop>
< / props>
< / property>
< / bean>
< tx:注释驱动/>
< bean id =transactionManager
class =org.springframework.orm.hibernate3.HibernateTransactionManager>
< property name =sessionFactoryref =sessionFactory/>
< / bean>
<! - 瓷砖组件 - >
< bean id =tilesViewResolver
class =org.springframework.web.servlet.view.UrlBasedViewResolver>
< property name =viewClass
value =org.springframework.web.servlet.view.tiles2.TilesView/>
< property name =ordervalue =0/>
< / bean>
< bean id =tilesConfigurer
class =org.springframework.web.servlet.view.tiles2.TilesConfigurer>
< property name =definitions>
< list>
< value> /WEB-INF/tiles.xml< / value>
< / list>
< / property>
< / bean>
<! - 语言组件 - >
< bean id =messageSource
class =org.springframework.context.support.ReloadableResourceBundleMessageSource>
< property name =basenamevalue =classpath:messages/>
< property name =defaultEncodingvalue =UTF-8/>
< / bean>
< bean id =localeResolver
class =org.springframework.web.servlet.i18n.CookieLocaleResolver>
< property name =defaultLocalevalue =en/>
< / bean>
<! - 主题组件 - >
< bean id =themeSource
class =org.springframework.ui.context.support.ResourceBundleThemeSource>
< property name =basenamePrefixvalue =theme-/>
<! - 我可以配置它来查看服务器上的目录吗? - >
< / bean>
< bean id =themeResolver
class =org.springframework.web.servlet.theme.CookieThemeResolver>
< property name =defaultThemeNamevalue =default/>
< / bean>
(编辑)
pom.xml
< project xmlns =http://maven.apache.org/POM/4.0.0 xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://maven.apache.org/POM/4.0.0 http:// maven .apache.org / XSD /行家-4.0.0.xsd>
< modelVersion> 4.0.0< / modelVersion>
< groupId> myapp< / groupId>
< artifactId> MyApp< / artifactId>
< packaging> war< / packaging>
< version> 0.0.1-SNAPSHOT< / version>
< name> App< / name>
< build>
< plugins>
< plugin>
< groupId> org.apache.maven.plugins< / groupId>
< artifactId> maven-war-plugin< / artifactId>
< version> 2.1.1< / version>
< / plugin>
< plugin>
< groupId> org.apache.maven.plugins< / groupId>
< artifactId> maven-compiler-plugin< / artifactId>
< version> 2.3.2< / version>
< configuration>
< source> 1.6< / source>
< target> 1.6< / target>
< / configuration>
< / plugin>
< / plugins>
< / build>
<属性>
< org.springframework.version> 3.1.1.RELEASE< /org.springframework.version>
< org.springframework.security.version> 3.1.0.RELEASE< /org.springframework.security.version>
< org.apache.tiles> 3.0.0< /org.apache.tiles>
< project.build.sourceEncoding> UTF-8< /project.build.sourceEncoding>
< / properties>
<依赖关系>
<依赖关系>
< groupId> commons-beanutils< / groupId>
< artifactId> commons-beanutils< / artifactId>
< version> 1.8.0< / version>
< / dependency>
<依赖关系>
< groupId> commons-digester< / groupId>
< artifactId> commons-digester< / artifactId>
< version> 2.0< / version>
< / dependency>
<依赖关系>
< groupId> log4j< / groupId>
< artifactId> log4j< / artifactId>
< version> 1.2.16< / version>
< / dependency>
<依赖关系>
< groupId> org.slf4j< / groupId>
< artifactId> slf4j-api< / artifactId>
< version> 1.5.8< / version>
< / dependency>
<依赖关系>
< groupId> org.slf4j< / groupId>
< artifactId> slf4j-log4j12< / artifactId>
< version> 1.4.2< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.tiles< / groupId>
< artifactId> tiles-api< / artifactId>
< version> $ {org.apache.tiles}< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.tiles< / groupId>
< artifactId> tiles-core< / artifactId>
< version> $ {org.apache.tiles}< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.tiles< / groupId>
< artifactId> tiles-jsp< / artifactId>
< version> $ {org.apache.tiles}< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.tiles< / groupId>
< artifactId> tiles-servlet< / artifactId>
< version> $ {org.apache.tiles}< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.tiles< / groupId>
< artifactId> tiles-template< / artifactId>
< version> $ {org.apache.tiles}< / version>
< / dependency>
<依赖关系>
< groupId> javax.servlet< / groupId>
< artifactId> servlet-api< / artifactId>
< version> 2.5< / version>
< / dependency>
<! -
<依赖关系>
< groupId> org.springframework.webflow< / groupId>
< artifactId> spring-webflow< / artifactId>
< version> 2.3.1.RELEASE< / version>
< / dependency>
- >
<依赖关系>
< groupId> org.springframework.security< / groupId>
< artifactId> spring-security-web< / artifactId>
< version> $ {org.springframework.security.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework.security< / groupId>
< artifactId> spring-security-config< / artifactId>
< version> $ {org.springframework.security.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework< / groupId>
< artifactId> spring-beans< / artifactId>
< version> $ {org.springframework.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework< / groupId>
< artifactId> spring-jdbc< / artifactId>
< version> $ {org.springframework.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework< / groupId>
< artifactId> spring-web< / artifactId>
< version> $ {org.springframework.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework< / groupId>
< artifactId> spring-webmvc< / artifactId>
< version> $ {org.springframework.version}< / version>
< / dependency>
<依赖关系>
< groupId> org.springframework< / groupId>
< artifactId> spring-orm< / artifactId>
< version> $ {org.springframework.version}< / version>
< / dependency>
<依赖关系>
< groupId> hibernate< / groupId>
< artifactId> hibernate-entitymanager< / artifactId>
< version> 3.4.0.GA< / version>
< / dependency>
<依赖关系>
< groupId> taglibs< / groupId>
< artifactId> standard< / artifactId>
< version> 1.1.2< / version>
< / dependency>
<依赖关系>
< groupId> javax.servlet< / groupId>
< artifactId> jstl< / artifactId>
< version> 1.2< / version>
< / dependency>
<依赖关系>
< groupId> mysql< / groupId>
< artifactId> mysql-connector-java< / artifactId>
< version> 5.1.10< / version>
< / dependency>
<依赖关系>
< groupId> commons-dbcp< / groupId>
< artifactId> commons-dbcp< / artifactId>
< version> 20030825.184428< / version>
< / dependency>
<依赖关系>
< groupId> commons-pool< / groupId>
< artifactId> commons-pool< / artifactId>
< version> 20030825.183949< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.commons< / groupId>
< artifactId> commons-lang3< / artifactId>
< version> 3.1< / version>
< / dependency>
< / dependencies>
EnvironmentAware位于spring-context-3.1.1.RELEASE.jar中,所以你没有那个。
还要重新检查您的Maven POM文件,以便您不会丢失任何其他Spring库,如spring-web,spring-webmvc(您可能有这些,因为DispatcherServlet类if发现),spring-orm如果你使用像Hibernate这样的ORM,如果你使用JMS,spring-jms等等。
I'm creating a web application using spring mvc. I have started to incorporate the Spring Security libraries. I'm now getting the following error in the tomcat log when I try to deploy it to tomcat with eclipse.
I'm using the following jar versions in my library
- spring framework version 3.1.1.RELEASE
- spring framework security version 3.1.0.RELEASE
I'm also using STS version of eclipse, maven and vmware vfabric tc Server (bundled with sts).
Here's the tomcat log
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.<init>(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
and here's my web.xml file
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!--
Display Name is used vides a short name for the application,
which will be displayed in the Tomcat Manager application.
When used in <security-constraint>, this tag provides a name
for the security constraint.
-->
<display-name>ImaginateFramework</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html|*.htm|*.xhtm|*.jsp|*.jsf|*.php|*.pl|*.cf</url-pattern>
</servlet-mapping>
<!-- Security Config -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
and here's my spring-servlet.xml file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<security:ldap-server />
<security:http auto-config='true'>
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="admin" password="password"
authorities="ROLE_USER, ROLE_ADMIN" />
<security:user name="bob" password="bob" authorities="ROLE_USER" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
<context:annotation-config />
<context:component-scan base-package="com.imaginatelabs.imaginate_framework.mvc" />
<mvc:annotation-driven />
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/scripts/" mapping="/scripts/**" />
<mvc:resources location="/themes/" mapping="/themes/**" />
<mvc:interceptors>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="themeChangeInterceptor"
class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
<property name="paramName" value="theme" />
</bean>
</mvc:interceptors>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" />
<!-- Hibernate Components -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- Tiles Components -->
<bean id="tilesViewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.tiles2.TilesView" />
<property name="order" value="0" />
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
<!-- Language Components -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en" />
</bean>
<!-- Theme Components -->
<bean id="themeSource"
class="org.springframework.ui.context.support.ResourceBundleThemeSource">
<property name="basenamePrefix" value="theme-" />
<!-- Can I configure this to look in a directory on the server? -->
</bean>
<bean id="themeResolver"
class="org.springframework.web.servlet.theme.CookieThemeResolver">
<property name="defaultThemeName" value="default" />
</bean>
(edit) pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>myapp</groupId>
<artifactId>MyApp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>App</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<org.springframework.version>3.1.1.RELEASE</org.springframework.version>
<org.springframework.security.version>3.1.0.RELEASE</org.springframework.security.version>
<org.apache.tiles>3.0.0</org.apache.tiles>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>${org.apache.tiles}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>${org.apache.tiles}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${org.apache.tiles}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>${org.apache.tiles}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-template</artifactId>
<version>${org.apache.tiles}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!--
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
-->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>20030825.184428</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>20030825.183949</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
EnvironmentAware is located in the spring-context-3.1.1.RELEASE.jar, so you are missing that one.
Also recheck your Maven POM file so that you are not missing any other Spring library, like spring-web, spring-webmvc (you may have these since the DispatcherServlet class if found), spring-orm if you use an ORM like Hibernate, spring-jms if you use JMS, etc.
这篇关于java.lang.NoClassDefFoundError:org / springframework / context / EnvironmentAware的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!