[RESOLVIDO]Mentawai-2.5.2 + Hibernate-4.1.4 = java.lang.NoSuchMethodError: Session

3 respostas
LeoVinicius

Boa tarde pessoal!

Primeiramente obrigado por todos os problemas anteriores resolvidos através da “leitura silenciosa” dos fóruns do GUJ! rs
Mas dessa vez não teve jeito, procurei bastante e não achei nada…

Estou refatorando(arquitetura) e atualizando um projeto aqui da empresa, ele ja usava Menta e Hibernate.
Agora estou tentando usar o SessionHandler do Menta, e ele me da o seguinte erro:

java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
	at org.mentawai.db.SessionHandler.getSession(SessionHandler.java:91)
	at org.mentawai.db.SessionHandler.getInstance(SessionHandler.java:96)
	at org.mentacontainer.impl.MentaContainer.get(MentaContainer.java:284)
	at org.mentacontainer.impl.ClassFactory.getValues(ClassFactory.java:185)
	at org.mentacontainer.impl.ClassFactory.getInstance(ClassFactory.java:333)
	at org.mentacontainer.impl.MentaContainer.get(MentaContainer.java:284)
	at org.mentacontainer.impl.ClassFactory.getValues(ClassFactory.java:185)
	at org.mentacontainer.impl.ClassFactory.getInstance(ClassFactory.java:333)
	at org.mentacontainer.impl.MentaContainer.construct(MentaContainer.java:457)
	at org.mentawai.core.ActionConfig.getAction(ActionConfig.java:934)
	at org.mentawai.core.Controller.service(Controller.java:940)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

O Código compila normal, só na hora que o AppManager é iniciado o erro aparece. Está parecendo ClassloaderHell… mas não tenho certeza.
Olhando no pom.xml do menta, vi que ele depende do hibernate-3.0.1, e o projeto do 4.1.4… pode ser isso?

Desde já obrigado!

3 Respostas

W

Ola LeoVinicius eu tambem enfrentei este problema ai.

acredito que o problema esta na integração do mentawai com esta versão do Hibernate, pois parece que foi mudado a forma de obter o SessionFactory, que no caso no mentawai é usado dentro do HibernateFilter.

no meu caso eu apenas voltei para a versão anterior do hibernate e tudo voltou a funcionar.

LeoVinicius

Bom dia Welson!

Obrigado por responder.

Pelo visto era conflito de versão do hibernate mesmo…
Pra mim ficou inviável voltar pra versão antiga do mentawai, então oque eu fiz foi criar no meu projeto o package org.mentawai.db com a classe SessionHandler(desta forma o menta não vai reclamar quando eu passar o meu SessionHandler no lugar do original) com exatamente o mesmo codigo do SessionHandler original. Ao corrigir as importações, a versão da Session esperada foi atualizada pra mesma que eu uso no meu projeto.
Eu achei que foi meio STE(solução técnica emergencial, vulgo “gambiarra”), mas no final, vou precisar fazer umas customizações na SessionHandler, pq eu lido com MultiTenancy de DB no projeto. Creio q a solução atenderá bem o problema!

Valew!
[]'s

W

Bacana cara parabens !!!

Criado 6 de julho de 2012
Ultima resposta 12 de jul. de 2012
Respostas 3
Participantes 2