首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hazelcast类路径错误

Hazelcast类路径错误
EN

Stack Overflow用户
提问于 2012-03-29 15:02:01
回答 1查看 2.9K关注 0票数 0

我正在尝试使用voldemort store来持久化hazelcast中的数据。我实现了mapstore接口。当我尝试在hazelcast中添加一个映射条目时,我得到了这个异常。

代码语言:javascript
复制
29 Mar, 2012 12:19:28 PM com.hazelcast.cluster.ClusterService
SEVERE: /192.168.100.120:5701 [dev] error processing messages  processable=com.hazelcast.cluster.ClusterService$1@561777b1
java.lang.NoClassDefFoundError: voldemort/client/StoreClientFactory
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406)
    at java.lang.Class.getConstructor0(Class.java:2716)
    at java.lang.Class.newInstance0(Class.java:343)
    at java.lang.Class.newInstance(Class.java:325)
    at com.hazelcast.impl.CMap.<init>(CMap.java:203)
    at com.hazelcast.impl.ConcurrentMapManager.getOrCreateMap(ConcurrentMapManager.java:2160)
    at com.hazelcast.impl.FactoryImpl.createProxy(FactoryImpl.java:735)
    at com.hazelcast.impl.FactoryImpl$7.process(FactoryImpl.java:809)
    at com.hazelcast.cluster.ClusterService$1.process(ClusterService.java:126)
    at com.hazelcast.cluster.ClusterService.processProcessable(ClusterService.java:190)
    at com.hazelcast.cluster.ClusterService.dequeueProcessables(ClusterService.java:256)
    at com.hazelcast.cluster.ClusterService.run(ClusterService.java:201)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ClassNotFoundException: voldemort.client.StoreClientFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 14 more

这是我编辑的hazelcast run.sh脚本,以便在类路径中包含voldemort jars。

代码语言:javascript
复制
#!/bin/sh
java -Djava.net.preferIPv4Stack=true -cp     ./:/home/gerrard/workspace/hazelcast/bin/:/home/gerrard/work/voldemort-    0.90.1/lib/:/home/gerrard/work/voldemort-0.90.1/dist/:/home/gerrard/work/voldemort-    0.90.1/bin/:../lib/hazelcast-2.0.1.jar com.hazelcast.examples.TestApp

我还在hazelcast.xml文件中添加了我的实现类。

我还在hazelcast-2.0.1.jar的清单文件中添加了一个类路径条目。

即使这样,当我尝试添加一个条目时,它也会给出这个noclassdef found错误。它试图查找的类肯定在我添加到类路径中的voldemort文件夹中。我仍然不知道问题出在哪里。有没有人能提出其他解决方案呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-29 16:38:13

您可以尝试Hazelcast Config并自己设置Factory对象。

代码语言:javascript
复制
// Build the config from xml file you have in the classpath
Config config = new XmlConfigBuilder().build();
MapStoreConfig msc = new MapStoreConfig..
msc.setFactoryImplementation(new StoreClientFactory());
MapConfig mapConfig = new MapConfig..
mapConfig.setMapStoreConfig(msc);
config.addMapConfig(mapconfig);

// init Hazelcast with this configuration
// make sure you call init fore any other Hazelcast operation!!
Hazelcast.init(config);

// then access to your map
Map map = Hazelcast.getMap("mymap");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9920534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档