【问题标题】:Hazelcast & OSGI: ClassNotFoundExceptionHazelcast 和 OSGI:ClassNotFoundException
【发布时间】:2016-09-28 04:30:20
【问题描述】:

我有一个运行捆绑包的 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 集成似乎是一个常见的困难,但到目前为止我还没有找到解决方案..

任何帮助将不胜感激:)

编辑:

  • Hazelcast 版本:3.7.1
  • 当我使用内存映射格式的 OBJECT 时,在序列化和反序列化过程中出现错误。使用内存映射格式的 BINARY,我只在反序列化期间收到错误
  • 显然这与 OSGI 无关。我在使用“普通”Java 应用程序时遇到了同样的问题。我只是在使用 Predicate 使用 values() 方法时遇到了这个问题。

【问题讨论】:

标签: osgi classnotfoundexception hazelcast


【解决方案1】:

我解决了我的问题。如果有一天有人面临同样的问题,请不要说谓词是在服务器端管理的。这意味着您必须在 Hazelcast 类路径中导入 bean 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2023-03-08
    相关资源
    最近更新 更多