【问题标题】:Maven/Spring/Hibernate NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()Maven/Spring/Hibernate NoSuchMethodError:org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()
【发布时间】:2016-04-27 22:40:10
【问题描述】:

首先,我通常不使用 Java,但过去使用过,所以我有点脱离了自己的舒适区。我有一个正在处理的 Spring 和 Hibernate 项目,它在启动时出现了致命错误。我可以将同一个 repo 克隆到另一个 Macbook Pro(与这个相同)并导入 eclipse,maven clean install,在服务器上运行(tomcat 配置)并且它可以工作。

Jan 20, 2016 3:45:34 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mssqlEntityManagerFactory' defined in class path resource [applicationContext-mssql.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
    at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:741)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5003)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mssqlEntityManagerFactory' defined in class path resource [applicationContext-mssql.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:438)
    at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:277)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:139)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.<init>(PersistenceExceptionTranslationInterceptor.java:79)
    at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor.<init>(PersistenceExceptionTranslationAdvisor.java:71)
    at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:84)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1532)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1500)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    ... 19 more
Caused by: java.lang.NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
    at org.jadira.usertype.spi.shared.AbstractUserTypeHibernateIntegrator.use42Api(AbstractUserTypeHibernateIntegrator.java:80)
    at org.jadira.usertype.spi.shared.AbstractUserTypeHibernateIntegrator.integrate(AbstractUserTypeHibernateIntegrator.java:61)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:290)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
    ... 34 more

Tomcat 7.0.64

Maven 依赖树

$ mvn dependency:tree

[INFO] +- commons-lang:commons-lang:jar:2.4:compile
[INFO] +- commons-codec:commons-codec:jar:1.6:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- org.springframework.ldap:spring-ldap-core:jar:2.0.2.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-data-commons:jar:1.6.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-beans:jar:3.2.8.RELEASE:compile
[INFO] +- org.springframework.ldap:spring-ldap-odm:jar:2.0.2.RELEASE:compile
[INFO] |  +- org.freemarker:freemarker:jar:2.3.9:compile
[INFO] |  +- commons-cli:commons-cli:jar:1.2:compile
[INFO] |  \- org.springframework.ldap:spring-ldap-core-tiger:jar:2.0.2.RELEASE:compile
[INFO] +- joda-time:joda-time:jar:2.5:compile
[INFO] +- org.apache.commons:commons-math3:jar:3.3:compile
[INFO] +- org.apache.commons:commons-collections4:jar:4.0:compile
[INFO] +- org.jadira.usertype:usertype.core:jar:3.2.0.GA:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.6:compile
[INFO] |  \- org.jadira.usertype:usertype.spi:jar:3.2.0.GA:compile
[INFO] +- com.mandrillapp.wrapper.lutung:lutung:jar:0.0.4:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.2.2:compile
[INFO] |  \- org.apache.commons:commons-io:jar:1.3.2:compile
[INFO] +- org.springframework.security:spring-security-core:jar:3.2.3.RELEASE:compile
[INFO] |  +- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-aop:jar:3.2.8.RELEASE:compile
[INFO] |  \- org.springframework:spring-expression:jar:3.2.8.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:3.2.3.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-ldap:jar:3.2.3.RELEASE:compile
[INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.5.RELEASE:compile
[INFO] |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |     \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] +- org.springframework.ws:spring-ws-core:jar:2.1.4.RELEASE:compile
[INFO] |  +- org.springframework.ws:spring-xml:jar:2.1.4.RELEASE:compile
[INFO] |  +- wsdl4j:wsdl4j:jar:1.6.1:compile
[INFO] |  \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] +- org.springframework:spring-oxm:jar:3.2.4.RELEASE:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.7.6:compile
[INFO] +- org.slf4j:log4j-over-slf4j:jar:1.7.6:compile
[INFO] +- org.slf4j:jul-to-slf4j:jar:1.7.6:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.1.2:compile
[INFO] |  \- ch.qos.logback:logback-core:jar:1.1.2:compile
[INFO] \- org.glassfish.jersey.media:jersey-media-multipart:jar:2.15:compile
[INFO]    +- org.glassfish.jersey.core:jersey-common:jar:2.15:compile
[INFO]    |  +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO]    |  +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.15:compile
[INFO]    |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO]    \- org.jvnet.mimepull:mimepull:jar:1.9.3:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:49.357s
[INFO] Finished at: Thu Jan 21 11:15:00 EST 2016
[INFO] Final Memory: 18M/307M
[INFO] ------------------------------------------------------------------------

Maven

$ mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 08:51:28-0500)
Maven home: /usr/local/maven
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac"

Java

$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

我采取了以下步骤:

$ git clone http://github.com/repo
$ cd repo
$ git checkout branch
$ mvn clean install

我使用 web gui 部署到 Tomcat,但它无法启动。 我清理了 repo 重建了所有东西,并完全在 Eclipse 中进行了尝试,甚至让它处理 Tomcat,我得到了相同的结果。我在清理时多次删除了 ~/.m2/repository 文件夹,但总是以同样的错误告终。

在另一台机器上,它偶尔会出现此错误,并且全新安装会修复它。另一台机器正在运行 Maven 3.3.3 和 Java 1.7.0_79。

任何帮助将不胜感激。

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/23018179/…
  • 您能否将mvn dependency:tree 的输出添加到您的帖子中。
  • 谢谢,我们是 Borg,我在搜索过程中读到了那篇文章,我现在再读一遍。一切都指向 spring 和 hibernate 之间的版本不匹配,但我可以在另一台机器上运行确切的设置,它的工作原理是最让我困惑的。 Karthikeyan 我在问我现在是否可以发布该输出。

标签: java spring hibernate maven tomcat


【解决方案1】:

我遇到了同样的问题,罪魁祸首是org.jadira.usertype:usertype.core。从您的 pom.xml 中删除 org.jadira.usertype:usertype.core:jar:3.2.0.GA:compile,它将在 JDK 8 中工作。

【讨论】:

  • 谢谢!我降级到 1.7.0_79 并且运行正常。
  • 您还可以将您的 Usertype 版本参考升级到 4.0.0.GA 或 5.0.0.GA 以解决问题,如他们的 release notes 中所述。
猜你喜欢
  • 2012-12-27
  • 2011-07-19
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
相关资源
最近更新 更多