ContextLoaderPlugIn nao encontrado

Boa tarde. Estou configurando o Spring para tratar as transacoes e tbem integrei ele com o Struts (esrou tentando). Quando inicio o server da o seguinte statckTrace:

2008-04-08 13:10:36,828 [main] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/MGFSuporte] - action: null
java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1338)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1187)
	at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:119)
	at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:167)
	at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:142)
	at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:842)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3880)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4141)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:680)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008-04-08 13:10:36,828 [main] INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/MGFSuporte] - Marking servlet action as unavailable
2008-04-08 13:10:36,828 [main] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/MGFSuporte] - Servlet /MGFSuporte threw load() exception
javax.servlet.UnavailableException
	at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:880)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3880)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4141)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:680)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008-04-08 13:10:38,187 [http-8080-Processor24] WARN org.apache.struts.util.PropertyMessageResources -   Resource application_pt_BR.properties Not Found.
2008-04-08 13:10:38,187 [http-8080-Processor24] WARN org.apache.struts.util.PropertyMessageResources -   Resource application_pt.properties Not Found.

Mas os meus arquivos action-servlet.xml e applicationContext… estao dentro de WEB-INF. Os meus jar’s spring.jar e spring-sources.jar e sring-web.jar estao na minha pasta lib…
Segue os meus arquivos de configuracao
action-servlet.ml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	 
	<bean name="/VerificaUsuario"
		class="br.com.MGFSuporte.controller.VerificaUsuarioAction">
		<property name="usuarioService" ref="verificaUserService">
		</property>
	</bean>
	
	 <bean id="verificaUserService" class="br.com.MGFSuporte.service.UsuarioServiceImpl">
	 	<property name="usuarioDAO">
	 		<bean id="usuarioDAO" class="br.com.MGFSuporte.DAO.UsuarioDAOHibernate"/>
	 	</property>
	 </bean>
	 <bean id="clienteService" class="br.com.MGFSuporte.service.ClienteServiceImpl">
	 	<property name="clienteDAO">
	 		<bean id="clienteDAO" class="br.com.MGFSuporte.DAO.ClienteDAOHibernate"/>
	 	</property>
	 </bean>
	
</beans>

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"
     xsi:schemaLocation="
     	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
	
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref local="dataSource"/>
		</property>
		<property name="mappingResources">
			<list>
				<value>br/com/MGFSuporte/DAO/Cliente.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/Usuario.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/Contrato.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/Aditivo.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/Modulo.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/ModuloContratado.hbm.xml</value>
				<value>br/com/MGFSuporte/DAO/Autorizacao.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>
				<prop key="show_sql">
					true
				</prop>
				<prop key="hibernate.generic statistics">
					true
				</prop>
				<prop key="hibernate.use_sql_comments">
					true
				</prop>
				
			</props>
		</property>
	</bean>	
	
	<!-- Este datasource é gerenciado pelo servidor -->
	<bean id="dataSource"
		class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName" value="java:comp/env/jdbc/MGFSuporte" />
					
	</bean>
	
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory"/>
		</property>
			
	</bean>
	
	<!-- Objeto que nos queremos que seja transacional -->
	<bean id="clienteService" class="br.com.MGFSuporte.service.ClienteServiceImpl">
	</bean>
	<bean id="usuarioService" class="br.com.MGFSuporte.service.UsuarioServiceImpl"/>
	
	<tx:annotation-driven transaction-manager="transactionManager"/>
	<!-- O advice transacional -->
	<!-- <tx:advice id="txAdvice" transaction-manager="transactionManager"> -->
		<!-- A semantina transacional -->
		<!-- <tx:attributes>
			<tx:method name="listar*" read-only="true"/>
			<tx:method name="retorna*" read-only="true"/>
			<tx:method name="consulta*" read-only="true"/>
			<tx:method name="*"/>
			
		</tx:attributes>
	</tx:advice>
	 -->
	
	<!--  AOP que caracteriza as execucoes -->
	<!--  <aop:config>-->
		<!-- Executa todos os joinpoints definido pelo pointcut -->
		<!-- <aop:pointcut id="serviceOperation" expression="execution(*br.com.MGFSuporte.DAO.*.*(..))"/> -->
		<!-- O advice que intercept o pointcut -->
		<!-- <aop:advisor advice-ref="" pointcut-ref="serviceOperation"/>
	</aop:config> -->
</beans>

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app>
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml /WEB-INF/action-servlet.xml</param-value>
	</context-param>
		
	<filter>
		<filter-name>HibernateSessionSpring</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
	</filter>
	<filter>
		<filter-name>LoginFiltro</filter-name>
		<filter-class>br.com.MGFSuporte.filtros.LoginFilter</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>HibernateSessionSpring</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>LoginFiltro</filter-name>
		<url-pattern>/pages/*</url-pattern>
	</filter-mapping>
	
	<listener>
		<listener-class>br.com.MGFSuporte.controller.ListenerContext</listener-class>
	</listener>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	
	<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>
	
	<resource-ref>
		<description>
			Referencia de Recurso para o Pool de Conexoes
			configurado no arquivo server.xml
		</description>
		<res-ref-name>jdbc/MGFSuporte</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
	
</web-app>

Obrigado

Consegui pessoal conforme o link abaixo…

http://forum.springframework.org/showthread.php?t=46600

Agora surgiu uma coisa. Na minha classe Action eu devo chamar meus metodos de persistencia atraves da minha interface de servico criada. Mas ele acusa que essa classe esta fazendo referencia nula…

java.lang.NullPointerException
br.com.MGFSuporte.DAO.UsuarioDAOHibernate.consultaLoginSenha(UsuarioDAOHibernate.java:19)
	br.com.MGFSuporte.service.UsuarioServiceImpl.consultaLoginSenha(UsuarioServiceImpl.java:21)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
	org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	$Proxy6.consultaLoginSenha(Unknown Source)
	br.com.MGFSuporte.controller.VerificaUsuarioAction.execute(VerificaUsuarioAction.java:53)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

Por favor analisem minha classe Action para eu ver o erro…

public class UsuarioDAOHibernate extends GenericHibernateDAO<Usuario, Long>
		implements UsuarioDAO {

	private SessionFactory sessionFactory;

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	public Usuario consultaLoginSenha(String codigo, String senha) {
		Usuario usuario = new Usuario();

		Query query = this.sessionFactory
				.getCurrentSession()
				.createQuery(
						"from br.com.MGFSuporte.DAO.Usuario as U Where U.codigo like ? and U.senha like ?");
		query.setString(0, codigo);
		query.setString(1, senha);
		usuario = (Usuario) query.uniqueResult();

		return usuario;

	}

}
public interface UsuarioService {

	Usuario consultaLoginSenha(String codigo, String senha);
}
public class UsuarioServiceImpl implements UsuarioService {

	private UsuarioDAOHibernate usuarioDAO;
	
	
	public void setUsuarioDAO(UsuarioDAOHibernate usuarioDAO) {
		this.usuarioDAO = usuarioDAO;
	}

	@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
	public Usuario consultaLoginSenha(String codigo, String senha) {
		
		return this.usuarioDAO.consultaLoginSenha(codigo, senha);
	}

}

Action:


public class VerificaUsuarioAction extends Action {

	private UsuarioService usuarioService;

	public void setUsuarioService(UsuarioService usuarioService) {
		this.usuarioService = usuarioService;
	}

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		
		ActionErrors errors = new ActionErrors();
		DynaValidatorForm dyna = (DynaValidatorForm) form;
		Usuario usuario = new Usuario();
		usuario = usuarioService.consultaLoginSenha(dyna.getString("codigo"),
		dyna.getString("senha"));

Obrigado…