Eclipse - Problema para subir aplicação

Estou fazendo um curso online, fiz tudo o que o instrutor fez e no final a aplicação não quer subir. O erro que retorna é esse.
Perdi a tarde toda e até agora nada.

GRAVE: Exception starting filter filter.Filter
java.lang.ExceptionInInitializerError
at filter.Filter.init(Filter.java:46)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4659)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5281)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:585)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1794)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
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.RuntimeException: Erro ao Conectar com o banco de dados
at connection.SingleConnection.conectar(SingleConnection.java:43)
at connection.SingleConnection.(SingleConnection.java:19)
… 17 more

Caused by: java.lang.RuntimeException: Erro ao Conectar com o banco de dados
por acaso está fechando a conexão com o filtro?
o que realmente está fazendo neste momento na sua aplicação?
mande o código do que foi feito.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<body>
<form action="LoginServlet" method="post">
Login:
<input type="text" id="login" name="login">
<br/>
Senha:
<input type="text" id="senha" name="senha">
<br/>
<input type="submit" value="logar">
</form>

</body>
</html>

package filter;

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

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 connection.SingleConnection;
@WebFilter(urlPatterns={"/*"})
public class Filter implements javax.servlet.Filter {
	private static Connection connection;

	@Override
	public void destroy() {
		
		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		try{
			
			arg2.doFilter(arg0, arg1);
			connection.commit();
		}catch(Exception e){
			try {
				connection.rollback();
			} catch (SQLException e1) {
			
				e1.printStackTrace();
			}
			
			
		}
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		SingleConnection.getConnection();
		
	}

}

package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import beans.Loginesenha;
import dao.DaoLogin;



@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private DaoLogin daoLogin = new DaoLogin();


    public LoginServlet() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request,response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try{
		Loginesenha loginesenha = new Loginesenha();
		String login = request.getParameter("login");
		String senha = request.getParameter("senha");

		if(daoLogin.validarlogin(login, senha)){
			RequestDispatcher dispatcher = request.getRequestDispatcher("acessoliberado.jsp");
			dispatcher.forward(request, response);
		}else {
			RequestDispatcher dispatcher = request.getRequestDispatcher("acessonegado.jsp");
			dispatcher.forward(request, response);


		}
		}catch (Exception e){
			e.printStackTrace();
		}

		}

	

}

Acredito que esteja fechando sua conexão e não esteja abrindo novamente, considerando que você fez uma classe singleton, meu palpite é:

  • quando você inicia o servidor você ganha conexão com o método init do servlet
  • quando você usa o filter você não está abrindo nenhuma conexão
  • quando você da um commit você fecha a conexão.

Sendo assim, faz uma coisa para confirmar, antes da linha arg2.doFilter(arg0, arg1);
de um SingleConnection.getConnection(); para ele abrir uma conexão quando houver uma requisição para ver se da certo.

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
		throws IOException, ServletException {
	try{
		**>>SingleConnection.getConnection();**
		arg2.doFilter(arg0, arg1);
		connection.commit();
	}catch(Exception e){
		try {
			connection.rollback();
		} catch (SQLException e1) {
		
			e1.printStackTrace();
		}
	}
}

Não funcionou :’(

manda o código da sua SingleConnection, TKS.

package connection;
import java.sql.Connection;
import java.sql.DriverManager;



//Responsável por fazer a conexão com o banco de dados


public class SingleConnection {
	private static String banco = "jdbc:postgresql://localhost:5432/CONSULTORIO?autoReconnect=true";
	//private static String password;
	private static String user = "postgres";
	private static Connection connection =null;
	
	
	
	static {
		conectar();

	}


	public SingleConnection(){
	conectar();


	}
	private static void conectar(){

	try{
		if(connection == null)// se for null faz a conexao se não retornar a conexao que já existe
			{
			Class.forName("org.postgresql.Driver");
			connection = DriverManager.getConnection(banco, user, "");
			connection.setAutoCommit(false); // Não permitir commitar automaticamente
}
{
			
			
		}
	}catch(Exception e){
		throw new RuntimeException("Erro ao Conectar com o banco de dados");

	}

	}
	public static Connection getConnection(){
		return connection;
		
	}
}

o seu erro deve está acontecendo nesta chamada, static, mas pode ser que venha antes, pois a exceção não foi tratada de maneira correta.

try{
		if(connection == null)// se for null faz a conexao se não retornar a conexao que já existe
		{
			Class.forName("org.postgresql.Driver");
			connection = DriverManager.getConnection(banco, user, "");
			connection.setAutoCommit(false); // Não permitir commitar automaticamente
            }
{
			
			
		}
	}catch(Exception e){
		throw new RuntimeException("Erro ao Conectar com o banco de dados"); /*você está ocultando o tipo do 
erro, coloque a exception da maneira informada a baixo.*/
catch(Exception e){
            throw new RuntimeException("Erro ao Conectar com o banco de dados" + e);
	}

e manda o log novamente se houver.

obs: você me fez da uma boa lida neste problema em rapaz kkk.

vou dar uma lida. obrigado.

Continuou a mesma coisa, mudei a conexão do banco para SQL Server, segue novo código.

package connection;
import java.sql.Connection;
import java.sql.DriverManager;



//Responsável por fazer a conexão com o banco de dados


public class SingleConnection {
	private static String banco = "jdbc:sqlserver://localhost:1433/CONSULTORIO?autoReconnect=true";
    private static String password="32313099";
	private static String user = "sa";
	private static Connection connection =null;
	

	static {
		conectar();

	}


	public SingleConnection(){
	conectar();


	}
	private static void conectar(){

	try{
		if(connection == null)// se for null faz a conexao se não retornar a conexao que já existe
			{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			connection = DriverManager.getConnection(banco,user,password);
			connection.setAutoCommit(false); // Não permitir commitar automaticamente
}
{
			
			
		}
	}catch(Exception e){
        throw new RuntimeException("Erro ao Conectar com o banco de dados" + e);
}

	}
	public static Connection getConnection(){
		return connection;
		
	}
}

mai 24, 2017 11:48:21 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:ProjetoFinal’ did not find a matching property.
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version: Apache Tomcat/8.0.32
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built: Feb 2 2016 19:34:53 UTC
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number: 8.0.32.0
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name: Windows 7
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version: 6.1
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture: x86
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home: C:\Program Files (x86)\Java\jre1.8.0_121
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version: 1.8.0_121-b13
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor: Oracle Corporation
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE: C:\apache-tomcat-8.0.32
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME: C:\apache-tomcat-8.0.32
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\apache-tomcat-8.0.32
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\apache-tomcat-8.0.32
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\apache-tomcat-8.0.32\wtpwebapps
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\apache-tomcat-8.0.32\endorsed
mai 24, 2017 11:48:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
mai 24, 2017 11:48:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre1.8.0_121\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre1.8.0_121/bin/client;C:/Program Files (x86)/Java/jre1.8.0_121/bin;C:/Program Files (x86)/Java/jre1.8.0_121/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Microsoft SQL Server\120\Tools\Binn;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn;C:\Program Files\Microsoft SQL Server\120\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files (x86)\Skype\Phone;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\FTC_TE1\eclipse;;.
mai 24, 2017 11:48:22 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“http-nio-8080”]
mai 24, 2017 11:48:23 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
mai 24, 2017 11:48:23 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“ajp-nio-8009”]
mai 24, 2017 11:48:23 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
mai 24, 2017 11:48:23 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 2532 ms
mai 24, 2017 11:48:23 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
mai 24, 2017 11:48:23 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.0.32
mai 24, 2017 11:48:24 PM org.apache.jasper.servlet.TldScanner scanJars
INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
mai 24, 2017 11:48:24 PM org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter filter
java.lang.ExceptionInInitializerError
at filter.Filter.init(Filter.java:47)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4659)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5281)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
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)
Caused by: java.lang.RuntimeException: Erro ao Conectar com o banco de dadosjava.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at connection.SingleConnection.conectar(SingleConnection.java:42)
at connection.SingleConnection.(SingleConnection.java:18)
… 13 more

mai 24, 2017 11:48:24 PM org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter filter.Filter
java.lang.NoClassDefFoundError: Could not initialize class connection.SingleConnection
at filter.Filter.init(Filter.java:47)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4659)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5281)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
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)

mai 24, 2017 11:48:24 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: One or more Filters failed to start. Full details will be found in the appropriate container log file
mai 24, 2017 11:48:24 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/ProjetoFinal] startup failed due to previous errors
mai 24, 2017 11:48:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\apache-tomcat-8.0.32\webapps\docs
mai 24, 2017 11:48:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\apache-tomcat-8.0.32\webapps\docs has finished in 65 ms
mai 24, 2017 11:48:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\apache-tomcat-8.0.32\webapps\examples
mai 24, 2017 11:48:24 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: ContextListener: contextInitialized()
mai 24, 2017 11:48:24 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: SessionListener: contextInitialized()
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\apache-tomcat-8.0.32\webapps\examples has finished in 716 ms
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\apache-tomcat-8.0.32\webapps\host-manager
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\apache-tomcat-8.0.32\webapps\host-manager has finished in 58 ms
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\apache-tomcat-8.0.32\webapps\manager
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\apache-tomcat-8.0.32\webapps\manager has finished in 57 ms
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\apache-tomcat-8.0.32\webapps\ROOT
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\apache-tomcat-8.0.32\webapps\ROOT has finished in 45 ms
mai 24, 2017 11:48:25 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“http-nio-8080”]
mai 24, 2017 11:48:25 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“ajp-nio-8009”]
mai 24, 2017 11:48:25 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 2095 ms

Agora aparece o erro, por falta do drive não conseguiu conectar, volta para o mysql até ter arrumado. Possivelmente também deve ser o mesmo erro xD. Se quiser continuar com SQLServer, terá que implementar o driver na lib.

Caused by: java.lang.RuntimeException: Erro ao Conectar com o banco de dadosjava.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

quando o filtro é iniciado ele tenta abrir a conexão e não vai conseguir por conta do erro acima.
GRAVE: Exception starting filter filter.Filter
java.lang.NoClassDefFoundError: Could not initialize class connection.SingleConnection

você está colocando todos os jars na sua WEB-INF/lib correto? caso tenha mais de uma aplicação rodando juntas, ele pode dar erro de versão e não encontrar o driver correto.

conseguir resolver.
obrigado pela ajuda.