Galera que manja de JAVA mais do que eu… faz três longos dias que to tentando usar o hibernate no eclipse, já li muuuuuito material disponivel na net mas nada… já fiz boa parte (coloquei o plugin no eclipse, já setei o classpath no eclipse com os jars do hibernate, criei os arquivos .hbm.xml e cfg.xml)…MAS NA HORA DE RODAR A APLICAÇÃO DÁ O SEGUINTE ERRO NO CONSOLE DO ECLIPSE:
Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at org.hibernate.cfg.Configuration.reset(Configuration.java:168 )
at org.hibernate.cfg.Configuration.<init>(Configuration.java:187)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:191)
at persistencia.SaudeFactory.<clinit>(SaudeFactory.java:13)
at visao.Login$3.run(Login.java:206)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:144)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:515)
… 13 more
PEGUEI UM EXEMPLO PRONTO DE UMA APLICAÇÃO QUE USA HIBERNATE E TÁ DANDO O MESMO ERRO NA HORA DE EXECUTAR.
[color=“red”]OBS: ESSE nullPointerException ocorre quando tento instanciar o objecto da classe Configuration() do Hibernate. Ex.:
Configuracao config = new Configuracao();[/color]
Se alguém souber o que está acontencendo e puder me dar uma força ficaria grato!
Tipo algumas dicas:
- Na pagina do Hibernate tem umas “receitas de bolo” para configurar e como usar o mesmo;
*Configure o Log4j que vem com o Hibernate para fazer um log dos erros, pq senao nem Deus descobre de onde eles estao sendo gerados.
De modo geral va na pagina do hibernate e boa, la explica como montar os arquivos de configuraçao e os arquivos de mapeamento de classes.
//exemplo de como montar uma conf.
public class HibernateUtil {
private static Log log = LogFactory.getLog(HibernateUtil.class);
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
log.error("Initial SessionFactory creation failed.", ex);
throw new ExceptionInInitializerError(ex);
} // end of the try - catch block
} // end of static block
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession() throws HibernateException {
Session s = (Session) session.get();
// Open a new Session, if this Thread has none yet
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
} // end of the method
} // end of the class
//exemplo do Arquivo de configuraçao do banco de dados
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">
org.apache.derby.jdbc.ClientDriver
</property>
<property name="hibernate.connection.url">
jdbc:derby://localhost:1527/D:/tempEclipse/bancos/HerancaJPA;create=true
</property>
<property name="hibernate.connection.username">
utfpr
</property>
<property name="hibernate.connection.password">
utfpr
</property>
<property name="hibernate.dialect">
org.hibernate.dialect.DerbyDialect
</property>
<property name="hibernate.hbm2ddl.auto">
create
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">false</property>
<!-- TABLE_PER_CLASS -->
<mapping class="pojo.Carga"/>
<mapping class="pojo.Pessoas"/>
<mapping class="pojo.Militar"/>
<mapping class="pojo.Passageiro"/>
<!-- JOINED
<mapping class="pojo.Pessoa"/>
<mapping class="pojo.Fisica"/>
<mapping class="pojo.Juridica"/>
-->
<!-- SINGLE_TABLE
<mapping class="pojo.Pessoa"/>
<mapping class="pojo.Fisica"/>
<mapping class="pojo.Juridica"/>
-->
</session-factory>
</hibernate-configuration>
Espero ter ajudado. Vlw