首页 > 解决方案 > Hazelcast 4.0.2 和 hazelcast hibernate4 3.8.4 之间的接口

问题描述

我想将 Hazelcast 从 3.12.7 升级到 4.0.2,并使用hazelcast-hibernate43.8.4 作为 Hibernate 的接口。

hibernate-core的是 4.2.21。当我尝试上传应用程序时,我接受以下异常。

可以用hazelcast-hibernate43.8.4 升级到 4.0.2 吗?

我需要升级到hazelcast-hibernate5? 如果我必须升级到hazelcast-hibernate5,这是否需要我升级hibernate-core

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: intellinx-bom] Unable to build EntityManagerFactory; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:396)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:371)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1689)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1627)
    ... 26 more
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:211)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:175)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:291)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1807)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
    at com.intellinx.ic.jpa.ConfigurableHibernatePersistence.createEntityManagerFactory(ConfigurableHibernatePersistence.java:95)
    at com.intellinx.ic.jpa.ConfigurableHibernatePersistence.createContainerEntityManagerFactory(ConfigurableHibernatePersistence.java:67)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:360)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:384)
    ... 30 more
Caused by: com.hazelcast.core.HazelcastException: java.lang.reflect.InvocationTargetException
    at com.hazelcast.internal.util.ServiceLoader$NewInstanceIterator.next(ServiceLoader.java:299)
    at com.hazelcast.internal.serialization.impl.SerializerHookLoader.load(SerializerHookLoader.java:62)
    at com.hazelcast.internal.serialization.impl.SerializerHookLoader.<init>(SerializerHookLoader.java:55)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.registerSerializerHooks(DefaultSerializationServiceBuilder.java:310)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:238)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:55)
    at com.hazelcast.instance.impl.DefaultNodeExtension.createSerializationService(DefaultNodeExtension.java:252)
    at com.hazelcast.instance.impl.Node.<init>(Node.java:249)
    at com.hazelcast.instance.impl.HazelcastInstanceImpl.createNode(HazelcastInstanceImpl.java:147)
    at com.hazelcast.instance.impl.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:116)
    at com.hazelcast.instance.impl.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:211)
    at com.hazelcast.instance.impl.HazelcastInstanceFactory.getOrCreateHazelcastInstance(HazelcastInstanceFactory.java:108)
    at com.hazelcast.core.Hazelcast.getOrCreateHazelcastInstance(Hazelcast.java:165)
    at com.intellinx.solutions.infrastructure.cache.configuration.SolutionsHazelcastInstanceLoaderImpl.loadInstance(SolutionsHazelcastInstanceLoaderImpl.java:130)
    at com.hazelcast.hibernate.AbstractHazelcastCacheRegionFactory.start(AbstractHazelcastCacheRegionFactory.java:79)
    at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:70)
    at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40)
    at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:1)
    at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:201)
    ... 41 more
Caused by: java.lang.reflect.InvocationTargetException
    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 com.hazelcast.internal.util.ServiceLoader$NewInstanceIterator.next(ServiceLoader.java:291)
    ... 60 more
Caused by: java.lang.NoClassDefFoundError: com/hazelcast/nio/UnsafeHelper
    at com.hazelcast.hibernate.serialization.Hibernate4CacheEntrySerializerHook.<init>(Hibernate4CacheEntrySerializerHook.java:37)
    ... 65 more
Caused by: java.lang.ClassNotFoundException: com.hazelcast.nio.UnsafeHelper
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 66 more

标签: hibernatehazelcast

解决方案


是否可以使用 hazelcast-hibernate4 3.8.4 升级到 4.0.2?

hazelcast-hibernate4Hazelcast 4.0.x 不再受支持并且无法使用它。

如果我必须升级到hazelcast-hibernate5那个要求我升级休眠核心?

是的,如果要使用 4.0.x,则需要使用 Hibernate 5。

然后,根据您选择的版本,您可以使用:

  • hazelcast-hibernate5
  • hazelcast-hibernate52
  • hazelcast-hibernate53

理想的选择是使用 Hibernate 5.4.x 和hazelcast-hibernate53. 更多关于兼容性的信息可以在 README 文件中找到


推荐阅读