Exception Java

2 respostas
javamysql
L

Estrou tentando executar um código mas dá um monte de exceções:

GRAVE: Exception starting filter [filter]

java.lang.ExceptionInInitializerError

at filter.Autenticar.init(Autenticar.java:49)

at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)

at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4511)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5157)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1382)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1372)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:907)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1382)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1372)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:907)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:933)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.startup.Catalina.start(Catalina.java:637)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)

Caused by: java.lang.RuntimeException: Erro ao conectar com o Banco de Dados

at conection.conection.conectar(conection.java:36)

at conection.conection.(conection.java:12)

 34 more
dez 16, 2018 8:56:28 PM org.apache.catalina.core.StandardContext filterStart

GRAVE: Exception starting filter [filter.Autenticar]

java.lang.NoClassDefFoundError: Could not initialize class conection.conection

at filter.Autenticar.init(Autenticar.java:49)

at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)

at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4511)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5157)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1382)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1372)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:907)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1382)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1372)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:907)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:933)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.startup.Catalina.start(Catalina.java:637)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
dez 16, 2018 8:56:28 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

dez 16, 2018 8:56:28 PM org.apache.catalina.core.StandardContext startInternal

GRAVE: Context [/JSP] startup failed due to previous errors

dez 16, 2018 8:56:28 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc

ADVERTÊNCIA: The web application [JSP] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

dez 16, 2018 8:56:28 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

ADVERTÊNCIA: The web application [JSP] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

java.lang.Object.wait(Native Method)

java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)

com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:64)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

java.lang.Thread.run(Thread.java:748)

dez 16, 2018 8:56:28 PM org.apache.catalina.startup.HostConfig deployDirectory

INFORMAÇÕES: Diretório de instalação da aplicação web [C:\apache-tomcat-9.0.14\webapps\docs]

dez 16, 2018 8:56:29 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.

dez 16, 2018 8:56:29 PM org.apache.catalina.startup.HostConfig deployDirectory

INFORMAÇÕES: Deployment of web application directory [C:\apache-tomcat-9.0.14\webapps\docs] has finished in [266] ms

dez 16, 2018 8:56:29 PM org.apache.catalina.startup.HostConfig deployDirectory

INFORMAÇÕES: Diretório de instalação da aplicação web [C:\apache-tomcat-9.0.14\webapps\examples]

dez 16, 2018 8:56:32 PM org.apache.catalina.loader.WebappClassLoaderBase checkStateForResourceLoading

INFORMAÇÕES: Illegal access: this web application instance has been stopped already. Could not load []. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.

java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load []. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1363)

at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1023)

at com.mysql.jdbc.AbandonedConnectionCleanupThread.checkContextClassLoaders(AbandonedConnectionCleanupThread.java:90)

at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:63)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)
package filter;

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 javax.servlet.annotation.WebFilter;

import conection.conection;


@WebFilter(urlPatterns= {"/*"})
public class Autenticar implements Filter {
	
	private static Connection connection;
	
	@Override
	public void destroy() {
		
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		try {
		chain.doFilter(request, response);
		connection.commit();
		} catch (Exception e) {
			
			try {
				connection.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}
		
	}
	
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		connection = conection.getConnection();
	}

}

2 Respostas

D

Não conheço a interface Filter, mas vi que o erro é na linha 49 (connection = conection.getConnection();), então dei um google e achei a documentação do erro que gerou sua classe. Tu pode dar uma conferida aqui.

Outra coisa, já usei a classe Connection e, pelo que eu lembro, a conexão é feita usando a classe DriverManager e seu método getConnection(String url, String user, String password).

Eis o método de conexão da minha classe DataBase, disponível no GitHub:

public static int conectar() throws com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,
			com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException,
			com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException, SQLException {
	
		try {

			// Tentando estabelecer conexão com o banco de dados
			conexao = DriverManager.getConnection(url, user, password);
			return 0;
			// flag = 0;

		} /* blocos catch */ {
   			// tratamentos de exceções
		}
   }
S

Há um erro de compilação neste método:

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

A classe correta é DriverManager, mas você digitou conection.

Criado 17 de dezembro de 2018
Ultima resposta 18 de dez. de 2018
Respostas 2
Participantes 3