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