Conexão com banco de dados Firebird + arquivo hibernate.cfg.xml

1 resposta
P

Oi pessoal, boa tarde.
Estou com um problema aqui para efetuar uma conexão com um banco de dados Firebird. Acho que estou fazendo alguma coisa errada no meu arquivo hibernate.cfg.xml. Acho que alguma configuração está errada. Ficaria extremamente grato se alguém pudesse me ajudar. Abaixo segue o código deste arquivo.

<?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 do driver do banco de dados -->
		<property name="hibernate.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
	
		<!-- A URL de conexão ao banco de dados -->
		<property name="hibernate.connection.url">jdbc:firebirdsql:localhost/3050:C:/André/SQL/Concessionaria.fdb</property>
		
	 	<!-- Nome do usuario -->	
		<property name="hibernate.connection.username">sysdba</property>	
		
		<!--  Senha do usuário -->	
		<property name="hibernate.connection.password">masterkey</property> 	
					
		<!-- O dialeto usado pelo Hibernate para conversar com o banco -->
		<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
		
		<!-- O arquivo que mapeia a tabela e o Bean Livros -->
		<mapping class="pacote.dadosentidades.Carros"/>
				
	</session-factory>

</hibernate-configuration>
O erro que acontece quando executa é o seguinte:
javax.servlet.ServletException: #{carrosView.create}: java.lang.ExceptionInInitializerError
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)

Na minha classe que faz a conexão, a execução não consegue passar pelo try e cai na Exception. Abaixo segue a minha classe para as conexões, ConnectionConcessionariaFactory:

package pacote.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;


public class ConnectionConcessionariaFactory {

	private static final SessionFactory sessionFactory;
	private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
	
	static{
		try{
			sessionFactory = new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory();
			
		} catch(Throwable t){
			throw new ExceptionInInitializerError(t);
		}
	}

	public static Session getInstance(){
			Session session = (Session)threadLocal.get();
			session = sessionFactory.openSession();
			threadLocal.set(session);
			return session;
	}
	
}


Abaixo segue o código da minha classe de conexão, reparei que durante a execução, ela não consegue passar pelo try, entra no catch e fica na exceção. 

package pacote.util; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.AnnotationConfiguration; 

public class ConnectionConcessionariaFactory { 

private static final SessionFactory sessionFactory; 
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); 

static{ 
try{ 
sessionFactory = new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory(); 

} catch(Throwable t){ 
throw new ExceptionInInitializerError(t); 


} 
} 
public static Session getInstance(){ 
Session session = (Session)threadLocal.get(); 
session = sessionFactory.openSession(); 
threadLocal.set(session); 
return session; 
} 

} 

Agora segue o que aparece no erro: 

HTTP Status 500 - 

-------------------------------------------------------------------------------- 

type Exception report 

message 

description The server encountered an internal error () that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: #{carrosView.create}: java.lang.ExceptionInInitializerError 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) 


root cause 

javax.faces.FacesException: #{carrosView.create}: java.lang.ExceptionInInitializerError 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:11 
javax.faces.component.UICommand.broadcast(UICommand.java:387) 
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) 
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 


root cause 

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError 
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
javax.faces.component.UICommand.broadcast(UICommand.java:387) 
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) 
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 


root cause 

java.lang.ExceptionInInitializerError 
pacote.util.ConnectionConcessionariaFactory.<clinit>(ConnectionConcessionariaFactory.java:20) 
pacoteDAO.CarrosDAO.salvar(CarrosDAO.java:20) 
pacote.Controller.CarrosController.create(CarrosController.java:7 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:597) 
org.apache.el.parser.AstValue.invoke(AstValue.java:172) 
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:6 
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:8 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
javax.faces.component.UICommand.broadcast(UICommand.java:387) 
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) 
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 


root cause 

java.lang.NoSuchFieldError: level 
org.apache.log4j.spi.RootLogger.setLevel(RootLogger.java:65) 
org.apache.log4j.spi.RootLogger.<init>(RootLogger.java:44) 
org.apache.log4j.LogManager.<clinit>(LogManager.java:7 
org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73) 
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:243) 
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255) 
org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151) 
pacote.util.ConnectionConcessionariaFactory.<clinit>(ConnectionConcessionariaFactory.java:17) 
pacoteDAO.CarrosDAO.salvar(CarrosDAO.java:20) 
pacote.Controller.CarrosController.create(CarrosController.java:7 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:597) 
org.apache.el.parser.AstValue.invoke(AstValue.java:172) 
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:6 
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:8 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
javax.faces.component.UICommand.broadcast(UICommand.java:387) 
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) 
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs. 


-------------------------------------------------------------------------------- 

Apache Tomcat/6.0.18

1 Resposta

romarcio

Seu problema parece estar aqui:

javax.faces.FacesException: #{carrosView.create}: java.lang.ExceptionInInitializerError

Da uma olhada na classe ou mapeamentos desse carrosView.

outra coisa, não lembro se é o usuario ou a senha no firebird, um dos 2 é em maiusculo, não é ?

Quando você acessa o firebird pelo gdb, um deste campos é digitado em maiusculas, mas não tenho 100% de certeza, no interbase sei que é.

Criado 22 de janeiro de 2010
Ultima resposta 22 de jan. de 2010
Respostas 1
Participantes 2