java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session -
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session -
i trying integrate working spring project hibernate, error getting on start up.
evere: servlet.service() servlet [appservlet] in context path [/telephonedirectory] threw exception [handler processing failed; nested exception java.lang.nosuchmethoderror: org.hibernate.sessionfactory.opensession()lorg/hibernate/classic/session;] root cause java.lang.nosuchmethoderror: org.hibernate.sessionfactory.opensession()lorg/hibernate/classic/session; @ org.springframework.orm.hibernate3.sessionfactoryutils.dogetsession(sessionfactoryutils.java:322) @ org.springframework.orm.hibernate3.sessionfactoryutils.getsession(sessionfactoryutils.java:233) @ org.springframework.orm.hibernate3.hibernatetemplate.getsession(hibernatetemplate.java:457) @ org.springframework.orm.hibernate3.hibernatetemplate.doexecute(hibernatetemplate.java:393) @ org.springframework.orm.hibernate3.hibernatetemplate.executewithnativesession(hibernatetemplate.java:374) @ org.springframework.orm.hibernate3.hibernatetemplate.find(hibernatetemplate.java:912) @ org.springframework.orm.hibernate3.hibernatetemplate.find(hibernatetemplate.java:904) @ com.emumba.telephonedirectory.repository.jdbcpersondao.getpersonslist(jdbcpersondao.java:36) @ com.emumba.telephonedirectory.service.simpledirectorymanager.getallpersons(simpledirectorymanager.java:23) @ com.emumba.telephonedirectory.web.homecontroller.home(homecontroller.java:42) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ org.springframework.web.method.support.invocablehandlermethod.invoke(invocablehandlermethod.java:212) @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:126) @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:96) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlermethod(requestmappinghandleradapter.java:617) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:578) @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:80) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:900) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:827) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:882) @ org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:778) @ javax.servlet.http.httpservlet.service(httpservlet.java:621) @ javax.servlet.http.httpservlet.service(httpservlet.java:722) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:224) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:169) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:168) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:98) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:928) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:987) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:539) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:300) @ java.util.concurrent.threadpoolexecutor$worker.runtask(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source)
i have googled find similar problems caused duplicates in classpath have looked closely , dont think duplicates in classpath. (may wrong.) heres screen shot of jars in classpath
i stuck, help appreciated
edit: search org.hibernate.sessionfactory gives
the problem have hibernate-core-4.0.0.final.jar
in classpath, spring 3.1 uses hibernate-core-3.6.0.final.jar
(see here spring 3.1 artifact , dependencies).
remove hibernate 4.0 , set hibernate 3.6 instead in classpath.
btw, there might more such miss matches. it's improve utilize maven take care of dependencies.
edit - more details
in hibernate 3.6 interface session
in bundle org.hibernate.classic
whereas in hibernate 4.0 moved bundle org.hibernate
.
in hibernate 3.6 sessionfactory.opensession
no longer returns org.hibernate.classic.session
, rather returns org.hibernate.session
. refactor breaks client code...
java hibernate spring
Comments
Post a Comment