hibernate - Grails 3.2.1 WAR无法以缺少org.hibernate.boot.registry.selector.StrategyRegistrationProvider开头

标签 hibernate grails gorm grails3.2.0

我有一个项目,当以组合WAR运行时,可以与Grails 3.2.0正常工作,但是当我尝试升级到以上任何版本时,它都会失败,并出现以下错误。

它可以在grails run-app下运行的所有3.2.x版本上正常工作,但是当我组合 war 并在3.2.1、3.2.2和3.2.3上运行时,出现错误。

其他搜索表明它与Infinispan有关,但我没有使用Infinispan。我尝试将hibernate-infinispan:5.1.2.Final jar添加到项目中,但仍然无法正常工作。

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is java.util.ServiceConfigurationError: org.hibernate.boot.registry.selector.StrategyRegistrationProvider: Error reading configuration file
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:122)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:271)
    ... 70 common frames omitted
Caused by: java.util.ServiceConfigurationError: org.hibernate.boot.registry.selector.StrategyRegistrationProvider: Error reading configuration file
    at java.util.ServiceLoader.fail(ServiceLoader.java:232)
    at java.util.ServiceLoader.parse(ServiceLoader.java:309)
    at java.util.ServiceLoader.access$200(ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:357)
    at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
    at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:340)
    at org.hibernate.boot.registry.selector.internal.StrategySelectorBuilder.buildSelector(StrategySelectorBuilder.java:162)
    at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:222)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:119)
    at org.grails.orm.hibernate.cfg.HibernateMappingContextConfiguration.<init>(HibernateMappingContextConfiguration.java:56)
    at org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory.buildConfiguration(HibernateConnectionSourceFactory.java:110)
    at org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory.create(HibernateConnectionSourceFactory.java:85)
    at org.grails.orm.hibernate.connections.AbstractHibernateConnectionSourceFactory.create(AbstractHibernateConnectionSourceFactory.java:38)
    at org.grails.orm.hibernate.connections.AbstractHibernateConnectionSourceFactory.create(AbstractHibernateConnectionSourceFactory.java:22)
    at org.grails.datastore.mapping.core.connections.AbstractConnectionSourceFactory.create(AbstractConnectionSourceFactory.java:64)
    at org.grails.datastore.mapping.core.connections.AbstractConnectionSourceFactory.create(AbstractConnectionSourceFactory.java:52)
    at org.grails.datastore.mapping.core.connections.ConnectionSourcesInitializer.create(ConnectionSourcesInitializer.groovy:24)
    at org.grails.orm.hibernate.HibernateDatastore.<init>(HibernateDatastore.java:206)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
    ... 72 common frames omitted
Caused by: java.io.FileNotFoundException: JAR entry !/META-INF/services/org.hibernate.boot.registry.selector.StrategyRegistrationProvider not found in /tmp/jar_cache5503433917943275700.tmp
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:142)

最佳答案

手动降级到tomcat 8.5.5(目前)已为我解决了该问题。

// build.gradle
ext {
    set "tomcat.version", "8.5.5"
}

here

关于hibernate - Grails 3.2.1 WAR无法以缺少org.hibernate.boot.registry.selector.StrategyRegistrationProvider开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41199171/

相关文章:

java - Spring Boot 。找不到类型为 'org.hibernate.SessionFactory' 的 bean

java - Spring Boot项目构建成功并报错

grails - 这是一个 Grails 构造函数吗

ajax - ajax调用链接到新页面不返回新页面

Hibernate/Envers 无法读取映射的属性

java - Hibernate LazyInitializingException

java - 如何在网页上显示动态生成的图像(条形码)?

gorm - 如何按字母顺序检索列表的成员?

hibernate - AWS Beanstalk和Grails 2.3.7 war

grails - Grails/Gorm-将域对象与自身1:M相关联