Error creating bean with name 'transactionManager' :nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/

Error creating bean with name 'transactionManager' :nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/

严重:上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名称为 'transactionManager' 的 bean 在 ServletContext 资源 [/WEB-INF/springrest-servlet.xml] 中定义时出错:调用 init 方法失败;嵌套异常是 java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 在 org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681) 在 org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552) 在 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493) 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 在 javax.servlet.GenericServlet.init(GenericServlet.java:158) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1194) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1110) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1000) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5211) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 原因:java.lang.NoClassDefFoundError:org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy 在 org.springframework.orm.hibernate5.HibernateTransactionManager.setDataSource(HibernateTransactionManager.java:186) 在 org.springframework.orm.hibernate5.HibernateTransactionManager.afterPropertiesSet(HibernateTransactionManager.java:360) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ... 还有 28 个 原因:java.lang.ClassNotFoundException:org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1108) ... 还有 32 个

2016 年 7 月 20 日 6:47:50 上午 org.apache.catalina.core.ApplicationContext 日志 严重:StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException:创建名称为 'transactionManager' 的 bean 在 ServletContext 资源 [/WEB-INF/springrest-servlet.xml] 中定义时出错:调用 init 方法失败;嵌套异常是 java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 在 org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681) 在 org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552) 在 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493) 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 在 javax.servlet.GenericServlet.init(GenericServlet.java:158) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1194) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1110) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1000) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5211) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 原因:java.lang.NoClassDefFoundError:org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy 在 org.springframework.orm.hibernate5.HibernateTransactionManager.setDataSource(HibernateTransactionManager.java:186) 在 org.springframework.orm.hibernate5.HibernateTransactionManager.afterPropertiesSet(HibernateTransactionManager.java:360) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ... 还有 28 个 原因:java.lang.ClassNotFoundException:org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1108) ... 还有 32 个

确保你的类路径中有 org.springframework.jdbc-XX.jar。如果您使用 Maven 或 gradle 来 compile/build 您的应用程序,请在您的依赖项中声明它...

行家:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.1.RELEASE</version>
</dependency>

Gradle:

compile("org.springframework.boot:spring-boot-starter")
compile("org.springframework:spring-jdbc")

根据需要更改版本发布。