[RESOLVIDO] at java.lang.Thread.run(Unknown Source)

13 respostas
P
To fazendo um trabalho para a faculdade mas travei em uma parte que não consigo resolver.. To tentando pegar os dados de uma pagina HTML comum com form mas quando mando salvar ele da um erro que não sei o que é...
SEVERE: Servlet.service() for servlet AdicionaContato threw exception
java.lang.ExceptionInInitializerError
	at br.com.AluguelDeCarros.Servlet.HibernateUtil.buildSessionFactory(HibernateUtil.java:20)
	at br.com.AluguelDeCarros.Servlet.HibernateUtil.<clinit>(HibernateUtil.java:8)
	at br.com.AluguelDeCarros.dao.ContatoDAO.Adiciona(ContatoDAO.java:20)
	at br.com.AluguelDeCarros.Servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:41)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
O body do HTML...
<body>
	<form action="adicionaContato">
		
		<p>Cadastro</p>
		Nome: &lt;input type="text" name="nome" /&gt; <br />
		E-mail: &lt;input type="text" name="email" /&gt; <br />
		Telefone: &lt;input type="text" name="telefone" /&gt; <br />
		Endereço: &lt;input type="text" name="endereco" /&gt; <br />
		Cartão de Crédito: &lt;input type="text" name="cartao" /&gt; <br /><br /><br /><br />
		
		<p>Carro</p>
		Modelo: &lt;input type="text" name="modelo" /&gt; <br />
		Marca: &lt;input type="text" name="marca" /&gt; <br />
		Placa: &lt;input type="text" name="placa" /&gt; <br />
		Quilometragem: &lt;input type="text" name="quilometragem" /&gt; <br />
		Data do Aluguel: &lt;input type="text" name="dataInicio" /&gt; <br />
		Data de Entrega: &lt;input type="text" name="dataFim" /&gt; <br /><br><br>		
		
		&lt;input type="submit" value="Gravar" /&gt;
	&lt;/form&gt;
&lt;/body&gt;
Camada DAO
package br.com.AluguelDeCarros.dao;

import org.hibernate.HibernateException;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;

import br.com.AluguelDeCarros.Contato;
import br.com.AluguelDeCarros.Servlet.HibernateUtil;




public class ContatoDAO  {
	
	public void Adiciona(Contato contato) {
		Session sessao = null;
		Transaction transacao = null;

		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			transacao = sessao.beginTransaction();
			sessao.save(contato);
			transacao.commit();
		} catch (HibernateException e) {
			System.out.println("Não foi possivel salvar o contato. Erro: " + e);
		} finally {
			try {
				sessao.close();
			} catch (Throwable e) {
				System.out.println("Erro ao fechar operaçao de insersão. Mensagem: "
								+ e);
			}
		}
	}
}

O Servlet...

package br.com.AluguelDeCarros.Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.AluguelDeCarros.Contato;
import br.com.AluguelDeCarros.dao.ContatoDAO;

public class AdicionaContatoServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		PrintWriter out = response.getWriter();

		// pegando parametros do request e já montando o contato
		Contato contato = new Contato();
		contato.setNome(request.getParameter("nome"));
		contato.setEmail(request.getParameter("email"));
		contato.setTelefone(request.getParameter("telefone"));
		contato.setEndereco(request.getParameter("endereco"));
		contato.setCartao(request.getParameter("cartao"));
		contato.setModelo(request.getParameter("modelo"));
		contato.setMarca(request.getParameter("marca"));
		contato.setPlaca(request.getParameter("placa"));
		contato.setQuilometragem(request.getParameter("quilometragem"));
		contato.setDataInicio(request.getParameter("dataInicio"));
		contato.setDataFim(request.getParameter("dataFim"));

		// Salvar Contatos

		ContatoDAO dao = new ContatoDAO();
		dao.Adiciona(contato);

		// testando
		System.out.println("&lt;html&gt;&lt;body&gt;");
		System.out.println("Contato: " + contato.getNome()
				+ "adicionado com sucesso");
		System.out.println("&lt;/body&gt; &lt;/html&gt;");

	}

}

E por fim o web.xml

&lt;servlet&gt;
		&lt;servlet-name&gt;AdicionaContato&lt;/servlet-name&gt;
		&lt;servlet-class&gt;
		    br.com.AluguelDeCarros.Servlet.AdicionaContatoServlet
		&lt;/servlet-class&gt;
	&lt;/servlet&gt;

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;AdicionaContato&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/adicionaContato&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

13 Respostas

asousaj

Posta o HibernateUtil, o erro pode estar lá.

P

O HibernateUtil

package br.com.AluguelDeCarros.Servlet;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateUtil {
	private static final SessionFactory sessionFactory = buildSessionFactory();

	private static SessionFactory buildSessionFactory() {
		
		try {
			Configuration cfg = new Configuration();
			cfg.configure("hibernate.cfg.xml");
			return cfg.buildSessionFactory();
			
		}
		catch (Throwable e) {
			System.out.println("Criaçao inicial do objeto SessionFactory falhou. Erro: " + e);
			throw new ExceptionInInitializerError();
		}
	}
	
	public static SessionFactory getSessionFactory(){
		return 	sessionFactory;
	}
	
	
}
P
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<!-- Configuração da conexão com o banco MySQL e dialeto -->
		<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/alugueldecarros</property>
		<property name="connection.username">root</property>
		<property name="connection.password">pe110859</property>
		<property name="current_session_context_class">thread</property>

		<!-- Usando as configurações do C3PO para pool de conexões -->
		<property name="c3po.min_size">5</property>
		<property name="c3po.max_size">30</property>
		<property name="c3po.timeout">300</property>
		<property name="c3po.max_statements">50</property>
		<property name="c3po.idle_test_period">3000</property>
		<property name="hibernate.hbm2ddl.auto">update</property>

		<!-- Configurações de debug -->
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		<property name="generate_statistics">true</property>
		<property name="use_sql_comments">true</property>

		<!-- Mapeando Classes -->
		<mapping resource="br/com/AluguelDeCarros/Contato.hbm.xml" />

	</session-factory>
</hibernate-configuration>
Contato.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
	<hibernate-mapping package="br.com.AluguelDeCarros">
		<class name="Contato" table="contato">
			<id column="id" name="id">
				<generator class="increment"></generator>
			</id>
			<property column="nome" name="nome" />
			<property column="email" name="email" />
			<property column="telefone" name="telefone" />
			<property column="endereco" name="endereco" />
			<property column="cartao" name="cartao" />
			<property column="modelo" name="modelo" />
			<property column="marca" name="marca" />
			<property column="placa" name="placa" />
			<property column="quilometragem" name="quilometragem" />
			<property column="dataInicio" name="dataInicio" />
			<property column="dataFim" name="dataFim" />
		</class>
	</hibernate-mapping>
pmlm

PedroFelipe1989:
System.out.println("Criaçao inicial do objeto SessionFactory falhou. Erro: " + e); throw new ExceptionInInitializerError();

O erro que estás a obter é o throw desta exception. No log deves ter antes o print do erro.

P

Verifiquei e ela está conseguindo pegar as informações da URL e salvando no objeto contato, mas não sei porque ele não consegue salvar essas informações no banco com o dao

P

pmlm:
PedroFelipe1989:
System.out.println("Criaçao inicial do objeto SessionFactory falhou. Erro: " + e); throw new ExceptionInInitializerError();

O erro que estás a obter é o throw desta exception. No log deves ter antes o print do erro.

Entendi o que voce quis dizer…
Ele ta dando esse erro:
Criaçao inicial do objeto SessionFactory falhou. Erro: java.lang.NoClassDefFoundError

asousaj

Seu projeto não deve estar encontrado a biblioteca do hibernate.

Coloque as bibliotecas do hibernate e tuas dependências na pasta lib e teste novamente.

P

asousaj:
Seu projeto não deve estar encontrado a biblioteca do hibernate.

Coloque as bibliotecas do hibernate e tuas dependências na pasta lib e teste novamente.

Ja adicionei todas as bibliotecas do hibernate…

antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-validator-3.1.0.GA.jar
hibernate-validator-4.1.0.Final.jar
javassist-3.12.0.GA.jar
javax.validation-validation-api-1.0.0.GA-sources.jar
jta-1.1.jar
slf4j-api-1.6.0.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.0.jar
mysql-connector-java-5.1.23-bin.jar

P

Verifiquei e o caminho da biblioteca do tomcat não estava encontrando a biblioteca, após arrumar apresenta um erro diferente…

asousaj

PedroFelipe1989:
Verifiquei e o caminho da biblioteca do tomcat não estava encontrando a biblioteca, após arrumar apresenta um erro diferente…

Geralmente essa falha acontece quando falta a lib do JPA, mas ela conta na lua lista de JARs :S
Posta o erro completo, talvez tenha outra informação útil lá.

P

asousaj:
PedroFelipe1989:
Verifiquei e o caminho da biblioteca do tomcat não estava encontrando a biblioteca, após arrumar apresenta um erro diferente…

Geralmente essa falha acontece quando falta a lib do JPA, mas ela conta na lua lista de JARs :S
Posta o erro completo, talvez tenha outra informação útil lá.

Todo o erro…

Criaçao inicial do objeto SessionFactory falhou. Erro: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
Erro ao fechar operaçao de insersão. Mensagem: java.lang.NullPointerException
f
f
f
f
Nov 13, 2013 12:52:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet AdicionaContato threw exception
java.lang.NoClassDefFoundError: Could not initialize class br.com.AluguelDeCarros.Servlet.HibernateUtil
	at br.com.AluguelDeCarros.dao.ContatoDAO.Adiciona(ContatoDAO.java:20)
	at br.com.AluguelDeCarros.Servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:60)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Erro ao fechar operaçao de insersão. Mensagem: java.lang.NullPointerException
asousaj
java.lang.NoClassDefFoundError: javax/persistence/EntityListeners

Cara a aplicação não tá encontrando o JPA.

P

Foi algum problema na lib mesmo, criei um novo projeto e refiz tudo, assim ele funcionou redondo…

Agradeço a todos pela ajuda!

Criado 11 de novembro de 2013
Ultima resposta 13 de nov. de 2013
Respostas 13
Participantes 3