Java.lang.NoClassDefFoundError: org / springframework / orm / hibernate3 / support / HibernateDaoSupport

I am working with Java web development using Spring3.1.1 + hibernate3.6.0 + tomcat7.0.29 + mysql5.5, but after starting on my server, Eclipse requested that

HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport 

and, as follows, the type of exception report

 message Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport description The server encountered an internal error (Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport) that prevented it from fulfilling this request. 

an exception

 org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:972) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 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) root cause java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:791) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) cc.fanbang.api.manager.DBManager.addUser(DBManager.java:139) cc.fanbang.api.controller.TestController.handleDBManagerTestRequest(TestController.java:42) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 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) root cause java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.support.HibernateDaoSupport org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:791) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) cc.fanbang.api.manager.DBManager.addUser(DBManager.java:139) cc.fanbang.api.controller.TestController.handleDBManagerTestRequest(TestController.java:42) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 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) 

I can’t understand why he told me that there is no hibernatedaosupport, and I imported it into the project in library links and web-inf / lib. The packages I imported as follows

  commons-beanutils-1.8.3.jar commons-coder-1.4.jar commons-io-2.3.jar commons-lang-2.6.jar commons-logging-1.1.1.jar ezorph-1.0.6.jar json-lib-2.4-jdk15.jar jstl-1.2.jar org.springframework.asm-3.1.1.release.jar org.springframework.beans-3.1.1.release.jar org.springframework.context-3.1.1.release.jar org.springframework.core-3.1.1.release.jar org.springframework.expression-3.1.1.release.jar org.springframework.web.servlet-3.1.1.release.jar org.springframework.web-3.1.1.release.jar servlet-api.jar antlr-2.7.6 c3p0-0.9.1.jar commons-collections-3.1.jar dom4j-1.6.1.jar ehcache-1.5.0.jar hibernate-jpa-2.0-api-1.0.1.final.jar hibernate3.jar javassist-3.12.0.ga.jar jta-1.1.jar mysql-connector-java-5.1.12-bin.jar org.springframework.orm-3.1.1.release.jar org.springframework.jdbc-3.1.1.release.jar org.springframework.aop-3.1.1.release.jar org.springframework.transaction-3.1.1.release.jar slf4j-api-1.6.1.jar slf4j-nop-1.6.1.jar 

and the contents of the applicationContext.xml part related to the transactional process as follows:

 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="fbPointcut" expression="bean(dbManager)" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="fbPointcut" /> </aop:config> 
+4
source share
3 answers

NoClassDefFoundError means that the classloader cannot find the class that org.springframework.orm.hibernate3.support.HibernateDaoSupport depends org.springframework.orm.hibernate3.support.HibernateDaoSupport . Not that HibernateDaoSupport missing. The best way to find which dependency is missing is to look at the HibernateDaoSupport import section

It seems you are missing the org.springframework.dao library in your class path.

+3
source

I think this is because there is another version of spring-orm jar in your library that has class org.springframework.orm.hibernate3.support.HibernateDaoSupport .

Add spring -orm 3.1 jar to your library. You can find the download link for jar below.

In general, if you get a NoClassDefFoundError , google for a jar that has a class. Maven Central Repository is a good place to do this.

Your spring aop, jdbc and transactional banks also have a different version (3.0.7, not 3.1.1). Always use jars of the same version. There is a possibility that the application may cause some error if you use different versions of banners.

+1
source

14.3 Sleep

We'll start by embracing Hibernate 3 in the Spring environment, using it to demonstrate the approach Spring takes to integrate O / R-mappers. In this section, many issues are discussed in detail and show various options for implementation and transaction DAO demarcation. Most of these templates can be directly translated to all other supported ORM tools. The following sections of this chapter will then cover other ORM technologies, showing more modest examples there.

Note: Starting with Spring 3.0, Spring requires Hibernate 3.2 or later .

Source: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/orm.html#orm-hibernate

Your version of Hibernate is too old.

When you read the question again, you say that you are using Hibernate 3.6, but you list hibernate3.jar among your dependencies. What is it?

0
source

Source: https://habr.com/ru/post/1435771/


All Articles