2016-12-17 85 views
1

我有一個項目,當以組裝WAR的形式運行時,它可以很好的與Grails 3.2.0一起工作,但是當我嘗試升級到任何上面的版本,它失敗,下面的錯誤。Grails 3.2.1 WAR無法啓動,因爲缺少org.hibernate.boot.registry.selector.StrategyRegistrationProvider

它適用於在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) 
+0

什麼服務器您使用的部署你的戰爭?什麼版本?它與使用'run-app'命令的服務器不同嗎? – zero01alpha

回答

1

手動降級到tomcat 8.5.5(現在)爲我解決了這個問題。

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

here

相關問題