java.lang.ClassNotFoundException: controller.Filtro

Estou desenvolvendo uma aplicação Web em Marven e conexão JPA , ao implementar a classe filtro minha aplicação não funciona, abaixo detalhes do erro e a implementação da classe Filtro.

GRAVE: Exception starting filter FiltroConexao
java.lang.ClassNotFoundException: controller.Filtro
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4583)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
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)


package br.com.mercadinho.controller;

import java.io.IOException;

import javax.faces.application.ResourceHandler;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebFilter(filterName = "FiltroConexao", urlPatterns = { "/*" })
public class Filtro implements Filter {

	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
			throws IOException, ServletException {

		HttpServletRequest requisicao = (HttpServletRequest) req;
		HttpServletResponse resposta = (HttpServletResponse) resp;
		HttpSession sessao = requisicao.getSession(false);

		String loginURI = requisicao.getContextPath() + "login.xhtml";

		boolean logado = sessao != null && sessao.getAttribute("user") != null;
		boolean paginaLogin = requisicao.getRequestURI().equals(loginURI);
		boolean requisicaoRecurso = requisicao.getRequestURI()
				.startsWith(requisicao.getContextPath() + 
                 ResourceHandler.RESOURCE_IDENTIFIER);

		if (logado || paginaLogin || requisicaoRecurso) {
			chain.doFilter(requisicao, resposta);
		} else {
			resposta.sendRedirect(loginURI);
		}
	}

public void destroy() {

}

public void init(FilterConfig arg0) throws ServletException {

}
}

Conexão JPAHibernate

package br.com.mercadinho.model.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import org.hibernate.SessionFactory;

public class JPAManager {

	private static JPAManager manager;
	private EntityManagerFactory sessionFactory;

	private JPAManager() {
		sessionFactory = Persistence.createEntityManagerFactory("Mercadinho");

		sessionFactory = (SessionFactory) Persistence.createEntityManagerFactory("Mercadinho");
	}

	public static JPAManager getInstance() {
		if (manager == null) {
			manager = new JPAManager();
		}

		return manager;
	}

	public EntityManager getEntityManager() {
		return sessionFactory.createEntityManager();
	}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

	<display-name>Mercadinho</display-name>

	<servlet>
		<servlet-name>Login</servlet-name>
		<servlet-class>Mercadinho.src.main.webapp.Login.xhtml</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>Login</servlet-name>
		<url-pattern>/login.xhtml</url-pattern>
	</servlet-mapping>

	<jsp-config>
		<jsp-property-group>
			<url-pattern>*.jsp</url-pattern>
			<el-ignored>false</el-ignored>
		</jsp-property-group>
	</jsp-config>

	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>

	<filter>
		<filter-name>FiltroConexao</filter-name>
		<filter-class>controller.Filtro</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>FiltroConexao</filter-name>
		<url-pattern>/restricted/*</url-pattern>
	</filter-mapping>

</web-app>

Tem algo errado aí, não tem?

Verdade. Obrigado!