WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService': Unsatisfied dependency expressed through field 'dao'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.Datasource] for bean with name 'txManager' defined in ServletContext resource [/WEB-INF/config/spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService': Unsatisfied dependency expressed through field 'dao'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.Datasource] for bean with name 'txManager' defined in ServletContext resource [/WEB-INF/config/spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.Datasource] for bean with name 'txManager' defined in ServletContext resource [/WEB-INF/config/spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService': Unsatisfied dependency expressed through field 'dao'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.Datasource] for bean with name 'txManager' defined in ServletContext resource [/WEB-INF/config/spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource 

It seems like I’m doing everything right, but it’s like this. Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.Datasource] for bean with name [/WEB-INF/config/spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource

 Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.Datasource <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-beans[/url] --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-context[/url] --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-tx[/url] --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.hibernate/hibernate-core[/url] --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.10.Final</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-webmvc[/url] --> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-webmvc[/url] --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-aop[/url] --> <!-- [url]https://mvnrepository.com/artifact/org.springframework/spring-aop[/url] --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.3.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/javax.servlet/servlet-api[/url] --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/mysql/mysql-connector-java[/url] --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency> <!-- [url]https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jdbc[/url] --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>8.0.30</version> </dependency> </dependencies> 

 <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring Hibernate JPA Hello World Application</display-name> <!-- Configuration file for the root application context --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/spring-servlet.xml </param-value> </context-param> <!-- Configuration for the DispatcherServlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 

 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan" value="Site" /> <property name="hibernate.properties"> <props> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> </props> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/users_and_music" /> <property name="username" value="zarpom" /> <property name="password" value="password" /> </bean> <bean id="txManager" class="org.apache.tomcat.jdbc.pool.Datasource"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven /> 

    1 answer 1

     <bean id="txManager" class="org.apache.tomcat.jdbc.pool.Datasource"> 

    The org.apache.tomcat.jdbc.pool.Datasource class is not a transaction manager.

    You need JpaTransactionManager or HibernateTransactionManager . The latter should be in a package that matches your version of Hibernate.

    If you wanted to use a tomcat-jdbc pool, then it should have been described as a DataSource .