-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hello, I'm trying to configure my application to run with Hibernate but it doesen't work, there is a problem that I can't identify. The problem is:
Jan 21, 2013 4:49:27 PM org.hibernate.cfg.Configuration configure INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml Jan 21, 2013 4:49:27 PM org.hibernate.cfg.Configuration getConfigurationInputStream INFO: HHH000040: Configuration resource: /hibernate.cfg.xml Jan 21, 2013 4:49:27 PM org.hibernate.cfg.Configuration doConfigure INFO: HHH000041: Configured SessionFactory: null Jan 21, 2013 4:49:27 PM org.zkoss.zk.ui.impl.UiEngineImpl handleError:1352 SEVERE:
java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.getEventListeners()Lorg/hibernate/event/EventListeners; at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:771) at br.com.rti.alpha.controle.Logar.confirm(Logar.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.zkoss.zk.ui.select.Selectors$ComposerEventListener.onEvent(Selectors.java:681) at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2742) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2713) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2654) at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 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:128) 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:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)
And always a click in the button has this problem.
Follow my code: Hibernate.cfg.xml
Source Code
<?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 >
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hydro_alpha</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<mapping class="br.com.rti.alpha.modelo.pessoa.Pessoa"/>
<mapping class="br.com.rti.alpha.modelo.pessoa.Funcao"/>
</session-factory>
</hibernate-configuration>
zk.xml
Source Code
<zk>
<device-config>
<device-type>ajax</device-type>
<timeout-uri>/timeout.zul</timeout-uri><!-- An empty URL can cause the browser to reload the same URL -->
</device-config>
</zk>
HibernateUtil.java
Source Code
package br.com.rti.alpha.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class HibernateUtil
{
private static final SessionFactory sessionFactory;
static
{
try
{
Configuration conf = new AnnotationConfiguration();
conf.configure();
sessionFactory = conf.buildSessionFactory();
}
catch (Throwable ex)
{
System.err.println("A criação da SessionFactory falhou." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
public static Session openSession()
{
return sessionFactory.getCurrentSession();
}
}
DaoFactory.java
Source Code
package br.com.rti.alpha.dao;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.rti.alpha.modelo.pessoa.Pessoa;
import br.com.rti.alpha.util.HibernateUtil;
public class DaoFactory
{
private Session session;
private Transaction transaction;
public DaoFactory()
{
this.session = HibernateUtil.openSession();
}
public DaoFactory(Session session)
{
this.session = session;
}
public void beginTransaction()
{
this.transaction = this.session.beginTransaction();
}
public void commit()
{
this.transaction.commit();
this.transaction = null;
}
public boolean hasTransaction()
{
return this.transaction != null;
}
public void rollback()
{
this.transaction.rollback();
this.transaction = null;
}
public void close()
{
this.session.close();
}
public Dao<Pessoa> getPessoaDao()
{
return new Dao<Pessoa>(this.session, Pessoa.class);
}
public PessoaDAO getPessoaDAO()
{
return new PessoaDAO(this.session);
}
}
The listener where I wired the components Logar.java
Source Code
package br.com.rti.alpha.controle;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import br.com.rti.alpha.dao.DaoFactory;
import br.com.rti.alpha.dao.PessoaDAO;
import br.com.rti.alpha.modelo.pessoa.Pessoa;
import br.com.rti.alpha.util.HibernateUtil;
public class Logar extends SelectorComposer<Window>
{
/**br.Login
*
*/
@Wire
private Textbox matricula;
@Wire
private Textbox senha;
@Wire
private Label msg;
@Wire
private Hbox hboxlogin;
@Wire("princ")
private Component princ;
@Listen("onClick=#btnLogin")
public void confirm()
{
Pessoa pessoa = new Pessoa();
pessoa.setMatricula(matricula.getValue());
pessoa.setSenha(senha.getValue());
alert("Teste de ligação de componente\nMatrícula: " + pessoa.getMatricula() +"\nSenha: " + pessoa.getSenha());
try
{
DaoFactory daof = new DaoFactory();
//daof.beginTransaction();
/*PessoaDAO pdao = daof.getPessoaDAO();
pessoa = pdao.existePessoa(pessoa);
if ( pessoa != null )
{
this.hboxlogin.setVisible(false);
}
else
{
Clients.evalJavaScript("loginFaild()");
}*/
}
catch (Exception e)
{
//e.printStackTrace();
alert("Problema de conexão com o Banco de Dados");
e.printStackTrace();
}
}
}
I tested with a simple class, and insert manual datas and the hibernate ran, worked, inserted datas in my database, MySQL. So, I think this problem is with the zkoss. Thank you for the attention. And I really tried everything.
Hi Hawk, I´m using Hibernate4 but I tried to use Configuration().configure() and nothing either. I´ll try other time to use Configuration().configure() and I´ll post here the results.
And Senthilchettyin, I´m going to see your blog toonight and pos here my results too.
Thank you boys.
Hi,
Which version of Hibernate do you use? AnnotationConfiguration
is deprecated at Hibernate 4.0. You should use new Configuration().configure()
.
You can check with my blog here
Wich version of Hibernate Did you use in habernate mapping examples? Because I'm trying to do my HibernateUtil class and in this line, factory=config.buildSessionFactory(serviceRegistry), on method getSession(), and it doesn't accept the argument serviceRegistry. I really understood. Thank you
rumenigg ( 2013-01-23 19:01:22 +0800 )editAsked: 2013-01-21 22:55:36 +0800
Seen: 68 times
Last updated: Jan 22 '13