Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hazelcast+;冬眠+;Payara/Glassfish环境中的Spring:类型id必须为正!电流:-202_Spring_Hibernate_Glassfish_Hazelcast - Fatal编程技术网

Hazelcast+;冬眠+;Payara/Glassfish环境中的Spring:类型id必须为正!电流:-202

Hazelcast+;冬眠+;Payara/Glassfish环境中的Spring:类型id必须为正!电流:-202,spring,hibernate,glassfish,hazelcast,Spring,Hibernate,Glassfish,Hazelcast,我想使用Hazelcast作为二级缓存提供程序。当我像Spring一样在本地启动应用程序时,它工作得很好。但是当我创建一个EAR来部署并在Payara(Glassfish)上运行时,我得到了一个错误 Caused by: java.lang.IllegalArgumentException: Type id must be positive! Current: -203, Serializer: com.hazelcast.hibernate.serialization.Hiber

我想使用Hazelcast作为二级缓存提供程序。当我像Spring一样在本地启动应用程序时,它工作得很好。但是当我创建一个EAR来部署并在Payara(Glassfish)上运行时,我得到了一个错误

Caused by: java.lang.IllegalArgumentException: Type id must be positive! Current: -203, Serializer: com.hazelcast.hibernate.serialization.Hibernate42CacheEntrySerializer@7f08093f at com.hazelcast.nio.serialization.SerializationServiceImpl.register(SerializationServiceImpl.java:416) at com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.registerSerializerHooks(DefaultSerializationServiceBuilder.java:245) at com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:196) at com.hazelcast.instance.DefaultNodeExtension.createSerializationService(DefaultNodeExtension.java:113) at com.hazelcast.instance.Node.(Node.java:160) at com.hazelcast.instance.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:120) at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:152) at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:135) at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:111) at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:58) at com.hazelcast.hibernate.instance.HazelcastInstanceLoader.createOrGetInstance(HazelcastInstanceLoader.java:91) at com.hazelcast.hibernate.instance.HazelcastInstanceLoader.loadInstance(HazelcastInstanceLoader.java:81) at com.hazelcast.hibernate.AbstractHazelcastCacheRegionFactory.start(AbstractHazelcastCacheRegionFactory.java:88) at org.hibernate.internal.CacheImpl.(CacheImpl.java:70) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35) at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:251) 原因:java.lang.IllegalArgumentException:类型id必须为正!当前:-203,序列化程序: com.hazelcast.hibernate.serialization。Hibernate42CacheEntrySerializer@7f08093f 位于com.hazelcast.nio.serialization.SerializationServiceImpl.register(SerializationServiceImpl.java:416) 位于com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.RegisterSerializationRhooks(DefaultSerializationServiceBuilder.java:245) 位于com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:196) 位于com.hazelcast.instance.DefaultNodeExtension.createSerializationService(DefaultNodeExtension.java:113) 在com.hazelcast.instance.Node.(Node.java:160) 位于com.hazelcast.instance.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:120) 位于com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:152) 位于com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:135) 位于com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:111) 位于com.hazelcast.core.hazelcast.newHazelcastInstance(hazelcast.java:58) 位于com.hazelcast.hibernate.instance.HazelcastInstanceLoader.createOrGetInstance(HazelcastInstanceLoader.java:91) 位于com.hazelcast.hibernate.instance.HazelcastInstanceLoader.loadInstance(HazelcastInstanceLoader.java:81) 位于com.hazelcast.hibernate.AbstractHazelcastCacheRegionFactory.start(AbstractHazelcastCacheRegionFactory.java:88) 位于org.hibernate.internal.CacheImpl.(CacheImpl.java:70) 位于org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40) 位于org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35) 位于org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:251) 我添加了以下依赖项

    <dependency>
       <groupId>com.hazelcast</groupId>
       <artifactId>hazelcast</artifactId>
       <version>3.5</version>
  </dependency>

    <dependency>
       <groupId>javax.cache</groupId>
       <artifactId>cache-api</artifactId>
       <version>1.0.0</version>
    </dependency>

    <dependency>
       <groupId>com.hazelcast</groupId>
       <artifactId>hazelcast-hibernate4</artifactId>
       <version>3.5</version>
    </dependency>

com.hazelcast
黑兹卡斯特
3.5
javax.cache
缓存api
1.0.0
com.hazelcast
hazelcast-hibernate4
3.5
这些属性是我添加到配置中的

        <prop key="hibernate.cache.region.factory_class">com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory</prop>
        <prop key="hibernate.cache.provider_configuration_file_resource_path">classpath:hazelcastServer.xml</prop>
        <prop key="hibernate.cache.hazelcast.use_native_client">false</prop>
com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory
类路径:hazelcastServer.xml
假的

有人知道问题是什么以及如何解决吗?我认为它可以依赖于payara服务器,它有一个集成的Hazelcast实例。实习生功能已禁用。

这是一个有点旧的主题,但如果有人遇到此问题

hazelcast似乎对内部序列化程序使用负ID,对外部序列化程序使用正ID。 但是,isInternal注册检查执行以下操作:

return type.getClassLoader() == classLoader && name.startsWith(HAZELCAST_BASE_PACKAGE);
因此,如果hazelcast-hibernate4加载到与hazelcast核心不同的类加载器中,就会发生此异常(如果我将hazelcast jar放在tomcat/lib中,并将hazelcast-hibernate4打包到我的应用程序war中,则可以复制此异常)