Hibernate?

19 respostas
D

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

19 Respostas

_fs

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:

A

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

D

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();

}	

}
D

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

A

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

D

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.

A

isso mesmo.

D

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

A

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.

D

debug eu ja fiz e trace o q eh?

A

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

A

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

D

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

D

esse log eh realmente necessario ?

A

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

D
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
D

ocorreu o erro descrito acima…

A

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.

D

agora está dando esse erro…

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

Criado 8 de junho de 2004
Ultima resposta 9 de jun. de 2004
Respostas 19
Participantes 3