Hibernate?

uso winXP, InterBase e Hibernate

alguem pode me ajudar com esse erro…

java.lang.ExceptionInInitializerError
at JMGrupoDAO.(JMGrupoDAO.java:27)
at PnGrupo.jButton1_actionPerformed(PnGrupo.java:124)
at PnGrupo_jButton1_actionAdapter.actionPerformed(PnGrupo.java:162)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.reflect.InvocationTargetException
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
at net.sf.hibernate.cfg.Configuration.<clinit>(Configuration.java:91)
… 26 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
… 30 more
Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method: <clinit> signature: ()V) Incompatible argument to function
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:102)
… 35 more

você já deu uma olhada na linha 27 da classe JMGrupoDAO?

at JMGrupoDAO.&#40;JMGrupoDAO.java&#58;27&#41; 

Caso ainda não entenda o erro, posta esta parte do código :wink:

Pelo que parece o erro está acontecendo no log4j do hibernate.
É bom vc dar uma olhada nas opções de logging do hibernate tb.

esta eh a classe…

a linha 27 eh Configuration cfg = new Configuration()…

import javax.swing.JOptionPane;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;

public class JMGrupoDAO {

private SessionFactory factory;

public JMGrupoDAO() {
	try {
		
		Configuration cfg = new Configuration()
		.addFile("JMGrupo.hbm.xml");
		
		factory = cfg.buildSessionFactory();
		
		
	}catch (Exception e1) {
		JOptionPane.showMessageDialog(null, "Erro de persistencia");
	}
}	

public void insert(JMGrupo pGrupo) throws Exception{
Session session = factory.openSession();
session.save(pGrupo);
session.flush();
session.close();
}
}

acho q o erro eh realmente no log4.properties, mas nao preciso de log.
Utilizo o winXP, estou simplesmente precisando acessar o banco…

o arquivo de log eh:

log4j.rootLogger=INFO, dest1
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n

O log4jx-x-x.jar está no classpath ???

uso o eclipse e o classpath q vc diz eh:
ir no project/properties/Java Build Path/ add external jar ?
se for isso sim …

aguardo resposta.

isso mesmo.

estou desenvolvendo uma aplicaçao desktop e nao deskweb.
esse log serve pra quem utiliza windosXP tbm ?

Precisa para debug e trace no hibernate.
O log fica mostrando as cláusulas SQL que ele envia e os parâmetros.
No caso do aplicativo ter problemas, isso é muito útil.

debug eu ja fiz e trace o q eh?

no log4j, trace é um nível abaixo do debug.

q versão do hibernate vc está usando ???
o jar do log4j que vc está usando é o q a documentação do hibernate pede ???

baixei a versao mais nova do hibernate 2.1.4 e adicionei ao classpath o mesmo arquivo de log q vem com esta versao …

esse log eh realmente necessario ?

é sempre bom ter, mas, em carater experimental, tenta tirar o log4j do classpath e faz um teste. Por favor.

08/06/2004 16:32:39 net.sf.hibernate.cfg.Environment <clinit>
INFO: Hibernate 2.1.4
08/06/2004 16:32:39 net.sf.hibernate.cfg.Environment <clinit>
INFO: loaded properties from resource hibernate.properties: {hibernate.connection.username=SYSDBA , hibernate.connection.password=chavep , hibernate.cglib.use_reflection_optimizer=true, hibernate.dialect=net.sf.hibernate.dialect.FirebirdDialect , hibernate.connection.url=jdbc:firebirdsql://localhost:3050/D:/Desenvol/Java/Cimo/Implementacao/Dados/CIMO.GDB , hibernate.connection.driver_class=org.firebirdsql.jdbc.FBDriver }
08/06/2004 16:32:39 net.sf.hibernate.cfg.Environment <clinit>
INFO: using CGLIB reflection optimizer
08/06/2004 16:32:39 net.sf.hibernate.cfg.Configuration addFile
INFO: Mapping file: JMGrupo.hbm.xml
08/06/2004 16:32:40 net.sf.hibernate.cfg.Binder bindRootClass
INFO: Mapping class: JMGrupo -> GRUPO
08/06/2004 16:32:40 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing one-to-many association mappings
08/06/2004 16:32:40 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing one-to-one association property references
08/06/2004 16:32:40 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing foreign key constraints
08/06/2004 16:32:40 net.sf.hibernate.cfg.SettingsFactory buildSettings
WARNING: No dialect set - using GenericDialect: Dialect class not found: net.sf.hibernate.dialect.FirebirdDialect
08/06/2004 16:32:40 net.sf.hibernate.dialect.Dialect
INFO: Using dialect: net.sf.hibernate.dialect.GenericDialect
08/06/2004 16:32:40 net.sf.hibernate.cfg.SettingsFactory buildSettings
INFO: Use outer join fetching: false
08/06/2004 16:32:40 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
08/06/2004 16:32:40 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 20
08/06/2004 16:32:40 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
SEVERE: JDBC Driver class not found: org.firebirdsql.jdbc.FBDriver

ocorreu o erro descrito acima…

bem… passou daquele problema, então.
Já é um começo.

O problema agora é que ele não tá encontrando o driver do Firebird.
Veja se o nome do driver está correto ou se o .jar está no classpath.

agora está dando esse erro…

SEVERE: Could not synchronize database state with session
net.sf.hibernate.JDBCException