Estou começando agora um projeto usando o Mentawai 2.3.0 e dessa vez procurei a versão mais nova do Hibernate, a 4.1.0. O problema acontece quando vou instanciar a sessão usando o HibernateFilter:
Session session = (Session) input.getValue(HibernateFilter.KEY);
DaoFactory fac = new DaoFactory(session);
O seguinte erro é retornado:
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
at org.mentawai.filter.HibernateFilter.openSessionHibernate(HibernateFilter.java:296)
at org.mentawai.filter.HibernateFilter.getValue(HibernateFilter.java:269)
at br.com.belgadata.restaurante.action.FuncionarioAction.cadastrar(FuncionarioAction.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:315)
at org.mentawai.filter.AuthenticationFilter.filter(AuthenticationFilter.java:164)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:147)
at br.com.belgadata.restaurante.util.filter.InformacoesBasicasFilter.filter(InformacoesBasicasFilter.java:20)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:147)
at org.mentawai.filter.HibernateFilter.filter(HibernateFilter.java:187)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:147)
at org.mentawai.core.Controller.invokeAction(Controller.java:95 at org.mentawai.core.Controller.service(Controller.java:813)
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:127)
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:29 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:58 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Alguem sabe o que pode ser isso? No meu projeto anterior usei o Mentawai 2.0 + Hibernate 3.5 e funcionava perfeitamente assim.
O Hibernate 4 mudou a forma de como se obtém a SessionFactory. O HibernateFilter deve estar utilizando um método antigo que não é mais suportado por essa versão do Hibernate.