Erro ao adicionar um Filter

Bom dia galera,

estou com um problema ao adicionar um filtro
já corri atras de alguma solução pelos forums e também no google
e não achei nada parecido, espero que alguem consiga me esclarecer porque estou travado
o que rola é o seguinte:
eu criei uma classe que implementa a superclasse Filter

package br.com.financeira.control;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.financeira.entity.Cliente;

public class SecurityFilter implements Filter {
	@SuppressWarnings("rawtypes")
	private HashMap resources = new HashMap();
	
	@SuppressWarnings("unchecked")
	public void init(FilterConfig config) throws ServletException{
		try{
			String accessFile = this.getClass()
									.getClassLoader()
									.getResource("properties/access.properties")
									.getPath();
			
			Properties properties = new Properties();
			
			properties.load(new FileInputStream(accessFile));
			resources.putAll(properties);
		} catch(Exception e){
			e.printStackTrace();
			throw new ServletException(e);
		}
	}
	
	public void doFilter(ServletRequest request, ServletResponse response, 
			FilterChain chain) throws IOException, ServletException{
		
		boolean allowed = verifyAccess((HttpServletRequest) request);
		if(!allowed){
			String logon = "login.jsp?next=" + getNextURL((HttpServletRequest) request);
			((HttpServletResponse) response).sendRedirect(logon);
		}
		
		chain.doFilter(request, response);
		
	}
	
	protected boolean verifyAccess(HttpServletRequest request) {  
		String resource = request.getRequestURI().replaceAll(request.getContextPath(), "");
			  
		while (resource.length() > 0){ 
			String rules = (String) resources.get(resource);
			if (rules != null){
				try{
					Cliente user = (Cliente) request.getSession().getAttribute(Cliente.KEY);
					return (user.getIdCliente() != 0);
				}catch(NullPointerException npe){return false;}
				 catch(Exception e){return false;}
			} else if (!resource.equals("/")) {
				int index = resource.lastIndexOf("/");
				if (index > -1) {
				resource = resource.substring(0, index);
			}
			} else {
				resource = "";
			}
		}
	return true;
	}
	
	protected String getNextURL(HttpServletRequest request){
		String url = request.getRequestURI();
		StringBuffer params = new StringBuffer("");
		
		Enumeration<?> enumParams = request.getParameterNames();
		while (enumParams.hasMoreElements()){
			String name = (String) enumParams.nextElement();
			String value = request.getParameter(name);
			
			if (params.length() > 0){
				params.append("&");
			}
			
			params.append(name).append("=").append(value);
		}
		
		return url + "?" + params.toString();
	}

	public void destroy() {
		// TODO Auto-generated method stub
		
	}
}

acontece que ao adicioná-la no web.xml ela dá pau (obs.: já tentei mudar a versão do xml para 2.5 e também não funciona)
segue meu web.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

… (Resto do xml com os servlets)

SecurityFilter br.com.financeira.control.SecurityFilter SecurityFilter /* REQUEST FORWARD INCLUDE ERROR [/code]

então ao rodar o sistema acontece o problema
ele não consegue subir o projeto
“ERRO 404”
e envia a seguinte mensagem no console

GRAVE: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
	at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:802)
	at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:202)
	at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1058)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1544)
	at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1623)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1205)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:313)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4667)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
29/10/2010 10:22:53 org.apache.catalina.startup.ContextConfig parseWebXml
GRAVE: Parse error in application web.xml file at jndi:/localhost/Financeira/WEB-INF/web.xml
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
	at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2688)
	at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2714)
	at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1061)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1544)
	at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1623)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1205)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:313)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4667)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
Caused by: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
	at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:802)
	at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:202)
	at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1058)
	... 36 more

espero poder conseguir resolver o problema

Att,
Rendell H. Bernardes
Analista de Sistemas - Cast

Resolvido:
seguinte, o caminho do arquivo estava errado, por algum motivo eu tenho que voltar duas pastas para acessar o arquivo
se pah alguem poderia até me explicar isso

onde estava “.getResource(“properties/access.properties”)” na linha 29
ficou “.getResource(”…/…/properties/access.properties")"

Galera o seguinte isso aqui não foi resolvido não

tá certo que o arquivo estava com o caminho errado mais o problema não era esse
o problema era com o tomcat 7, ou seja, não consegui resolver isso

tive que mudar o servidor de aplicação pro tomcat 6
se alguem souber como que configura filtro no tomcat 7 eu agradeço

Att,
Rendell H. Bernardes
Analista de Sistemas - Cast

nenhuma ajuda? idéias? suposições? nada?