Conexão com BD através de Filtro

Boa tarde pessoal!

Tenho um projeto praticamente pronto e funcionando, usando apenas o Spring MVC, porém estou fazendo umas revisões nele para melhorar as práticas e escritas.

Resolvi usar Filter para fazer a conexão com o BD,dessa maneira não precisarei me preocupar em ficar fechando as conexões já que nessa revisão ví que esqueci um monte delas aberta.

Fiz o FJ11 e FJ-21 na caelum, refiz todo o curso em casa e ok, funciona tudo direitinho

Estou tentando usar no meu projeto o mesmo modelo de filtro que aprendi no FJ-21, mas na hora de chamar ele no método está dando o seguinte erro:

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NoSuchMethodError: br.com.press.produtividade.dao.PlantaDAO: method <init>()V not found

Mesmo usando o modo de conexão antigo sem chama-la pelo filtro, já constatei que o filter está funcionando, está debugando corretamente no Sysout.

Vou colocar as classes aqui, podem me apontar o erro por favor? ja tentei muitas coisas e nada:
FiltroConexao.java

package br.com.press.filtros;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

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 br.com.press.factory.ConnectionFactory;

//
public class FiltroConexao implements Filter {

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

	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		try {
			System.err
					.println("####--CONEXÃO COM O BANCO DE DADOS ABERTA-####");
			Connection connection = new ConnectionFactory().getConnection();

			// pendurando a connection na requisição
			request.setAttribute("conexao", connection);

			chain.doFilter(request, response);

			connection.close();
			System.err
					.println("####--CONEXÃO COM O BANCO DE ENCERRADA--#### \n");
		} catch (SQLException e) {
			throw new ServletException(e);
		}
	}

}

PlantaDAO.java

package br.com.press.produtividade.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.press.produtividade.model.Plantas;

public class PlantaDAO {
	private Connection connection;

	/*
	//CONSTRUTOR COM MODO DE CONEXÃO ANTIGO, ESTAVA FUNCIONANDO CORRETAMENTE
	public PlantaDAO() {
		try {
			this.connection = new ConnectionFactory().getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
	*/
	
	public PlantaDAO(Connection connection) {
		this.connection = connection;
	}	

	public List<Plantas> lista(HttpServletRequest request,HttpServletResponse response)  {
		Connection connection =(Connection)request.getAttribute("conexao"); //ADICIONEI ESTA LINHA E INSTANCIEI O REQUEST E RESPONSE ACIMA
		
		try {
			List<Plantas> plantas = new ArrayList<Plantas>();
			String sql = "select * from plantas "/*where id_planta = ?*/;
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			//stmt.setLong(1,id);

			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
				// adiciona a planta na lista
				plantas.add(populaPlanta(rs));
			}

			rs.close();
			stmt.close();

			System.out.println("fechou a conexão da planta");	
			return plantas;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	private Plantas populaPlanta(ResultSet rs) throws SQLException {
		Plantas planta = new Plantas();

		// popula o objeto planta
		planta.setId(rs.getLong("id_planta"));
		planta.setNomePlanta(rs.getString("nome_planta"));
		planta.setSiglaPlanta(rs.getString("sigla_planta"));

		return planta;
	}
}

trecho do webxml

	<filter>
		<filter-name>FiltroConexao</filter-name>
		<filter-class>br.com.press.filtros.FiltroConexao</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>FiltroConexao</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

Desde já, obrigado!