1
我有一个OSGI(基于Equinox的)平台运行一个包。这束连接到Hazelcast用于检索的一些数据与:的com.MyClass反序列化过程中Hazelcast&OSGI:ClassNotFoundException
ClientConfig clientConfig = new XmlClientConfigBuilder(configIs).build();
clientConfig.setClassLoader(com.MyClass.class.getClassLoader());
HazelcastInstance instance = com.hazelcast.client.HazelcastClient.newHazelcastClient(clientConfig);
但在运行时(instance.getMap(图).values()),我得到了跟随着例外:
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.MyClass
我真的不明白为什么Hazelcast将无法找到com.MyClass,尤其是我打电话的setClassLoader的方式()实现方法具d。 com.MyClass btw实现Serializable接口。
我知道跟OSGI整合Hazelcast似乎是一个普遍存在的难题,但我没能找到解决迄今..
任何帮助,将不胜感激:)
编辑:
- Hazelcast版本:3.7.1
- 当我使用内存映射格式的对象,我得到了系列化&反序列化过程中的错误。在内存映射格式中使用BINARY时,仅在反序列化期间出现错误
- 显然这与OSGI无关。我面对与“普通”Java应用程序相同的问题。我正在使用Predicate使用values()方法时遇到问题。
卡拉夫地窖使用榛木,也许你可以看看https://github.com/apache/karaf-cellar –