我有一个运行捆绑的OSGI(基于Equinox的)平台。该捆绑包连接到Hazelcast,用于检索一些数据:
ClientConfig clientConfig = new XmlClientConfigBuilder(configIs).build();
clientConfig.setClassLoader(com.MyClass.class.getClassLoader());
HazelcastInstance instance = com.hazelcast.client.HazelcastClient.newHazelcastClient(clientConfig);
但是在运行时( instance.getMap(map).values()),在 com.MyClass 的反序列化过程中,我得到了以下异常:
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.MyClass
我真的不明白为什么Hazelcast无法找到 com.MyClass ,尤其是我调用 setClassLoader()方法的方式。 com.MyClass btw实现了Serializable接口。
我知道将Hazelcast与OSGI集成似乎是一个常见的难题,但到目前为止我还没有找到解决方案..
任何帮助将不胜感激:)
编辑:
答案 0 :(得分:1)
我解决了我的问题。如果有一天有人面对同一个,请不要在服务器端管理Predicate。这意味着您必须在Hazelcast类路径中导入bean类。