ERROR [2015-06-23 10:12:50,826] localhost-startStop-1 org.springframework.web.context.ContextLoader - Context initialization failed
java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/BeanExpressionResolver
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getDeclaredConstructor(Unknown Source)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:78)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:249)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.config.BeanExpressionResolver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 17 more
这是我的applicationcontext.xml文件......
的applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:sec="http://www.springframework.org/schema/security"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="punit"/>
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="databasePlatform"><ref bean="dialect"/></property>
</bean>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/comp/env/jdbc/iclassifieddb"/>
</bean>
<bean id="dialect" class="org.springframework.jndi.JndiObjectFactoryBean" autowire-candidate="false">
<property name="jndiName" value="java:/comp/env/dialect"/>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
<!-- Startup bean -->
<bean id="databaseSetup" class="com.Yasna.iclassified.util.DatabaseSetup">
<property name="mutableAclService" ref="aclService"/>
<property name="configurationDao"><ref bean="configurationItemDAO"/></property>
</bean>
<!-- DAOs -->
<bean id="categoryDAO"
class="com.Yasna.iclassified.category.CategoryDAOJPA">
</bean>
<bean id="configurationItemDAO"
class="com.Yasna.iclassified.configuration.ConfigurationItemDAOJPA">
</bean>
<bean id="dataElementDAO"
class="com.Yasna.iclassified.dataelement.DataElementDAOJPA">
</bean>
<bean id="postingDAO"
class="com.Yasna.iclassified.posting.PostingDAOJPA">
<property name="propertyHelperFactory"><ref bean="propertyHelperFactory"/></property>
<property name="luceneIndexer"><ref bean="luceneIndexer"/></property>
</bean>
<bean id="propertyDAO"
class="com.Yasna.iclassified.property.PropertyDAOJPA">
</bean>
<bean id="imagePropertyDAO"
class="com.Yasna.iclassified.property.ImagePropertyDAOJPA">
<property name="configurationDAO"><ref bean="configurationItemDAO"/></property>
</bean>
<bean id="userDAO"
class="com.Yasna.iclassified.user.UserDAOJPA">
</bean>
<!-- Controllers. Remember to specify the appropriate DAO as the dao parameter -->
<bean id="categoryController" scope="prototype" class="com.Yasna.iclassified.category.CategoryController">
<property name="dao"><ref bean="categoryDAO"/></property>
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
</bean>
<bean id="configurationController" scope="prototype" class="com.Yasna.iclassified.configuration.ConfigurationController">
<property name="dao"><ref bean="configurationItemDAO"/></property>
</bean>
<bean id="dataelementController" scope="prototype" class="com.Yasna.iclassified.dataelement.DataElementController">
<property name="dao"><ref bean="dataElementDAO"/></property>
<property name="categoryDAO"><ref bean="categoryDAO"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
</bean>
<bean id="postingController" scope="prototype" class="com.Yasna.iclassified.posting.PostingController">
<property name="dao"><ref bean="postingDAO"/></property>
<property name="categoryDAO"><ref bean="categoryDAO"/></property>
<property name="propertyDAO"><ref bean="propertyDAO"/></property>
<property name="dataElementDAO"><ref bean="dataElementDAO"/></property>
<property name="configurationDAO"><ref bean="configurationItemDAO"/></property>
<property name="mutableAclService"><ref bean="aclService"/></property>
<property name="propertyHelperFactory"><ref bean="propertyHelperFactory"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
</bean>
<bean id="postingListController" scope="prototype" class="com.Yasna.iclassified.posting.PostingListController">
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="categoryDAO"><ref bean="categoryDAO"/></property>
</bean>
<bean id="userController" scope="prototype" class="com.Yasna.iclassified.user.UserController">
<property name="dao"><ref bean="userDAO"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
<property name="userHelper"><ref bean="userHelper"/></property>
</bean>
<!-- Property Helpers -->
<bean id="propertyHelperFactory" class="com.Yasna.iclassified.property.PropertyHelperFactory">
<property name="helperMap">
<map>
<entry>
<key>
<value>SHORT_TEXT</value>
</key>
<ref bean="textHelper"/>
</entry>
<entry>
<key>
<value>LONG_TEXT</value>
</key>
<ref bean="textHelper"/>
</entry>
<entry>
<key>
<value>IMAGE</value>
</key>
<ref bean="imageHelper"/>
</entry>
<entry>
<key>
<value>CURRENCY</value>
</key>
<ref bean="currencyHelper"/>
</entry>
<entry>
<key>
<value>DEFAULT_CURRENCY</value>
</key>
<ref bean="defaultCurrencyHelper"/>
</entry>
</map>
</property>
</bean>
<bean id="textHelper" class="com.Yasna.iclassified.property.TextPropertyHelper">
<property name="propertyDAO"><ref bean="propertyDAO"/></property>
</bean>
<bean id="imageHelper" class="com.Yasna.iclassified.property.ImagePropertyHelper">
<property name="propertyDAO"><ref bean="imagePropertyDAO"/></property>
</bean>
<bean id="currencyHelper" class="com.Yasna.iclassified.property.CurrencyPropertyHelper">
<property name="propertyDAO"><ref bean="propertyDAO"/></property>
</bean>
<bean id="defaultCurrencyHelper" class="com.Yasna.iclassified.property.DefaultCurrencyPropertyHelper">
<property name="propertyDAO"><ref bean="propertyDAO"/></property>
</bean>
<!-- Miscellaneous actions -->
<bean id="homeController" scope="prototype" class="com.Yasna.iclassified.util.HomeController">
<property name="configurationDAO"><ref bean="configurationItemDAO"/></property>
<property name="userDAO"><ref bean="userDAO"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
<property name="userHelper"><ref bean="userHelper"/></property>
</bean>
<bean id="profileController" scope="prototype" class="com.Yasna.iclassified.user.ProfileController">
<property name="userDAO"><ref bean="userDAO"/></property>
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
</bean>
<bean id="getFile" class="com.Yasna.iclassified.util.GetFileAction">
<property name="propertyDAO"><ref bean="imagePropertyDAO"/></property>
</bean>
<bean id="postingSearchController" class="com.Yasna.iclassified.posting.PostingSearchController">
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="luceneSearcher"><ref bean="luceneSearcher"/></property>
</bean>
<bean id="configurationCacheAction" scope="prototype" class="com.Yasna.iclassified.configuration.ConfigurationCacheAction">
<property name="configurationItemDAO"><ref bean="configurationItemDAO"/></property>
</bean>
<!-- Interceptors -->
<bean id="propertiesInterceptor" scope="prototype" class="com.Yasna.iclassified.struts.PropertiesInterceptor">
<property name="userDAO"><ref bean="userDAO"/></property>
<property name="postingDAO"><ref bean="postingDAO"/></property>
</bean>
<!-- Scheduled Jobs -->
<bean id="expiryJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="postingDAO" />
<property name="targetMethod" value="expirePostings" />
</bean>
<bean id="expiryTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="expiryJob" />
<!-- run every hour -->
<property name="cronExpression" value="0 0 * * * ?" />
</bean>
<bean id="versionCheck" class="com.Yasna.iclassified.util.VersionChecker">
<property name="configurationDAO" ref="configurationItemDAO"/>
</bean>
<bean id="versionCheckJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="versionCheck" />
<property name="targetMethod" value="checkVersion" />
</bean>
<bean id="versionTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="versionCheckJob" />
<!-- run every day at midday -->
<property name="cronExpression" value="0 0 12 * * ?" />
</bean>
<!--
<bean id="extraTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="expiryJob" />
<property name="cronExpression" value="0 * * * * ?" />
</bean>
-->
<!-- A list of Triggers to be scheduled and executed by Quartz -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="expiryTrigger"/>
<ref bean="versionTrigger"/>
<!-- <ref bean="extraTrigger"/> -->
</list>
</property>
</bean>
<!-- Email configuration -->
<bean id="mailProperties" scope="prototype" class="com.Yasna.iclassified.util.MailProperties">
<property name="configurationDAO"><ref bean="configurationItemDAO"/></property>
</bean>
<bean id="mailSender" scope="prototype" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<bean factory-bean="mailProperties" factory-method="getHost"/>
</property>
<property name="password">
<bean factory-bean="mailProperties" factory-method="getPassword"/>
</property>
<property name="username">
<bean factory-bean="mailProperties" factory-method="getUser"/>
</property>
</bean>
<bean id="emailController" scope="prototype" class="com.Yasna.iclassified.email.EmailController">
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="emailHelper"><ref bean="emailHelper"/></property>
</bean>
<bean id="emailHelper" scope="prototype" class="com.Yasna.iclassified.email.EmailHelper">
<property name="mailSender"><ref bean="mailSender"/></property>
<property name="securityHelper"><ref bean="securityHelper"/></property>
<property name="configurationItemDAO"><ref bean="configurationItemDAO"/></property>
</bean>
<!-- Lucene Indexing -->
<bean id="fsDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">
<property name="location" value="lucene"/>
<property name="create">
<value>true</value>
</property>
</bean>
<bean id="indexFactory" class="org.springmodules.lucene.index.support.SimpleIndexFactoryBean">
<property name="directory" ref="fsDirectory"/>
<property name="create">
<value>true</value>
</property>
<property name="analyzer">
<bean class="org.apache.lucene.analysis.SimpleAnalyzer">
</bean>
</property>
</bean>
<bean id="luceneIndexer" class="com.Yasna.iclassified.lucene.LuceneIndexer">
<property name="indexFactory"><ref bean="indexFactory"/></property>
<property name="propertyHelperFactory"><ref bean="propertyHelperFactory"/></property>
</bean>
<bean id="searcherFactory"
class="org.springmodules.lucene.search.factory.SimpleSearcherFactory">
<property name="directory" ref="fsDirectory"/>
</bean>
<bean id="luceneSearcher" class="com.Yasna.iclassified.lucene.LuceneSearcher">
<property name="searcherFactory"><ref bean="searcherFactory"/></property>
<property name="analyzer"><bean class="org.apache.lucene.analysis.SimpleAnalyzer" /></property>
<property name="postingDAO"><ref bean="postingDAO"/></property>
<property name="dataElementDAO"><ref bean="dataElementDAO"/></property>
</bean>
<!-- Miscellaneous Beans -->
<bean id="securityHelper" class="com.Yasna.iclassified.security.SecurityHelper" />
<bean id="userHelper" scope="prototype" class="com.Yasna.iclassified.user.UserHelper">
<property name="emailHelper"><ref bean="emailHelper"/></property>
</bean>
</beans>
这是上述上下文文件的安全性。
securityApplicationContext.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
<http auto-config='true'>
<intercept-url pattern="/category/Category/create*" access="ROLE_ADMIN" />
<intercept-url pattern="/configuration**" access="ROLE_ADMIN" />
<intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<form-login login-page="/common/login.jsp" />
</http>
<authentication-provider user-service-ref='userDAO'>
<password-encoder hash="sha">
<salt-source user-property="username"/>
</password-encoder>
</authentication-provider>
<global-method-security secured-annotations="enabled" jsr250-annotations="enabled" access-decision-manager-ref="accessDecisionManager"/>
<!-- ACL permission masks used by this application -->
<beans:bean id="org.springframework.security.acls.domain.BasePermission.READ"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<beans:property name="staticField" value="org.springframework.security.acls.domain.BasePermission.READ"/>
</beans:bean>
<beans:bean id="org.springframework.security.acls.domain.BasePermission.WRITE"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<beans:property name="staticField" value="org.springframework.security.acls.domain.BasePermission.WRITE"/>
</beans:bean>
<beans:bean id="org.springframework.security.acls.domain.BasePermission.CREATE"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<beans:property name="staticField" value="org.springframework.security.acls.domain.BasePermission.CREATE"/>
</beans:bean>
<beans:bean id="org.springframework.security.acls.domain.BasePermission.DELETE"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<beans:property name="staticField" value="org.springframework.security.acls.domain.BasePermission.DELETE"/>
</beans:bean>
<beans:bean id="org.springframework.security.acls.domain.BasePermission.ADMINISTRATION"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<beans:property name="staticField" value="org.springframework.security.acls.domain.BasePermission.ADMINISTRATION"/>
</beans:bean>
<!-- An access decision voter that reads ROLE_* configuration settings -->
<beans:bean id="roleVoter" class="org.springframework.security.vote.RoleVoter"/>
<!-- An access decision voter that reads ACL_POSTING_WRITE configuration settings -->
<beans:bean id="aclPostingWriteVoter" class="com.Yasna.iclassified.security.GenericsAclEntryVoter">
<beans:constructor-arg ref="aclService"/>
<beans:constructor-arg value="ACL_POSTING_WRITE"/>
<beans:constructor-arg>
<beans:list>
<beans:ref local="org.springframework.security.acls.domain.BasePermission.WRITE"/>
</beans:list>
</beans:constructor-arg>
<beans:property name="processDomainObjectClass" value="com.Yasna.iclassified.posting.Posting"/>
</beans:bean>
<!-- An access decision voter that reads ACL_POSTING_DELETE configuration settings -->
<beans:bean id="aclPostingDeleteVoter" class="com.Yasna.iclassified.security.GenericsAclEntryVoter">
<beans:constructor-arg ref="aclService"/>
<beans:constructor-arg value="ACL_POSTING_DELETE"/>
<beans:constructor-arg>
<beans:list>
<beans:ref local="org.springframework.security.acls.domain.BasePermission.DELETE"/>
</beans:list>
</beans:constructor-arg>
<beans:property name="processDomainObjectClass" value="com.Yasna.iclassified.posting.Posting"/>
</beans:bean>
<!-- An access decision voter that determines if there is an existing authentication -->
<beans:bean id="authenticatedVoter" class="org.springframework.security.vote.AuthenticatedVoter"/>
<!-- An access decision voter that reads JSR 250 annotations -->
<beans:bean id="jsr250Voter" class="org.springframework.security.annotation.Jsr250Voter"/>
<beans:bean id="accessDecisionManager"
class="org.springframework.security.vote.AffirmativeBased">
<beans:property name="decisionVoters">
<beans:list>
<beans:ref bean="roleVoter"/>
<beans:ref bean="jsr250Voter"/>
<beans:ref bean="authenticatedVoter"/>
<beans:ref bean="aclPostingWriteVoter"/>
<beans:ref bean="aclPostingDeleteVoter"/>
</beans:list>
</beans:property>
</beans:bean>
<!-- ========= ACCESS CONTROL LIST LOOKUP MANAGER DEFINITIONS ========= -->
<beans:bean id="aclCache" class="org.springframework.security.acls.jdbc.EhCacheBasedAclCache">
<beans:constructor-arg>
<beans:bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<beans:property name="cacheManager">
<beans:bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
</beans:property>
<beans:property name="cacheName" value="aclCache"/>
</beans:bean>
</beans:constructor-arg>
</beans:bean>
<beans:bean id="lookupStrategy" class="org.springframework.security.acls.jdbc.BasicLookupStrategy">
<beans:constructor-arg ref="dataSource"/>
<beans:constructor-arg ref="aclCache"/>
<beans:constructor-arg>
<beans:bean class="org.springframework.security.acls.domain.AclAuthorizationStrategyImpl">
<beans:constructor-arg>
<beans:list>
<beans:bean class="org.springframework.security.GrantedAuthorityImpl">
<beans:constructor-arg value="ROLE_ADMINISTRATOR"/>
</beans:bean>
<beans:bean class="org.springframework.security.GrantedAuthorityImpl">
<beans:constructor-arg value="ROLE_ADMINISTRATOR"/>
</beans:bean>
<beans:bean class="org.springframework.security.GrantedAuthorityImpl">
<beans:constructor-arg value="ROLE_ADMINISTRATOR"/>
</beans:bean>
</beans:list>
</beans:constructor-arg>
</beans:bean>
</beans:constructor-arg>
<beans:constructor-arg>
<beans:bean class="org.springframework.security.acls.domain.ConsoleAuditLogger"/>
</beans:constructor-arg>
</beans:bean>
<beans:bean id="aclService" class="org.springframework.security.acls.jdbc.JdbcMutableAclService">
<beans:constructor-arg ref="dataSource"/>
<beans:constructor-arg ref="lookupStrategy"/>
<beans:constructor-arg ref="aclCache"/>
</beans:bean>
</beans:beans>
这是web.xml包含过滤器映射... 的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="iClassified" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>iClassified</display-name>
<!-- Include this if you are using Hibernate -->
<filter>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<filter-class>
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-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>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<resource-ref>
<description>
iClassified data source.
</description>
<res-ref-name>
jdbc/iclassifieddb
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/*Context.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
这就是我所拥有的代码,以上是我得到的错误.. 请提前帮助和谢谢......