Hazelcast集成问题 - [WebLogic 12c]

时间:2016-11-22 11:51:48

标签: hazelcast hazelcast-imap

我在使用weblogic 12c整合Hazelcast时遇到了问题。我是否需要更改任何配置?

com.hazelcast.instance.NodeExtension com.hazelcast.instance.DefaultNodeExtension

第1步:[setDomainEnv.cmd]我添加了的路径

SET CLASSPATH =%CLASSPATH%E:lib \ hazelcast-all-3.7.1.jar;

第2步:我为weblogic服务器编写了一个示例启动类

public class HCServer {
public HCServer() {
    HazelcastInstance hz = Hazelcast.newHazelcastInstance();
}

public static void main(String[] args) {
    try {
        Class.forName("server.HCServer").newInstance();

        Set<HazelcastInstance> set = Hazelcast.getAllHazelcastInstances();
        for (HazelcastInstance hcInstance : set) {
            IMap<String, HCTask> iMap = hcInstance.getMap("data");

            for (int i = 0; i < 5000; i++) {
                iMap.put(String.valueOf(i), new HCTask(i));
            }
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }

}
}

启动服务器时出现以下错误

<Nov 22, 2016, 4:07:44,922 PM PKT> 
Nov 22, 2016 4:07:45 PM com.hazelcast.config.XmlConfigLocator
INFO: Loading 'hazelcast-default.xml' from classpath.
Nov 22, 2016 4:07:46 PM com.hazelcast.instance.DefaultAddressPicker
INFO: [LOCAL] [dev] [3.7.1] Prefer IPv4 stack is true.
Nov 22, 2016 4:07:46 PM com.hazelcast.instance.DefaultAddressPicker
INFO: [LOCAL] [dev] [3.7.1] Picked [192.168.0.37]:5701, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true
Nov 22, 2016 4:07:47 PM com.hazelcast.instance.NodeExtensionFactory
WARNING: DefaultNodeExtension class has been loaded by two different class-loaders. Are you running Hazelcast in an OSGi environment? If so, set the bundle class-loader in the Config using the setClassloader() method
<Nov 22, 2016, 4:07:47,256 PM PKT> <com.hazelcast.instance.NodeExtensionFactory> <DefaultNodeExtension class has been loaded by two different class-loaders. Are you running Hazelcast in an OSGi environment? If so, set the bundl
e class-loader in the Config using the setClassloader() method>
com.hazelcast.core.HazelcastException: java.lang.NoSuchMethodException: com.hazelcast.instance.DefaultNodeExtension.(com.hazelcast.instance.Node)
at com.hazelcast.util.ExceptionUtil.peel(ExceptionUtil.java:73)
at com.hazelcast.util.ExceptionUtil.peel(ExceptionUtil.java:52)
at com.hazelcast.util.ExceptionUtil.rethrow(ExceptionUtil.java:83)
at com.hazelcast.instance.NodeExtensionFactory.create(NodeExtensionFactory.java:54)
at com.hazelcast.instance.DefaultNodeContext.createNodeExtension(DefaultNodeContext.java:35)
at com.hazelcast.instance.Node.createNodeExtension(Node.java:290)
at com.hazelcast.instance.Node.(Node.java:177)
at com.hazelcast.instance.HazelcastInstanceImpl.createNode(HazelcastInstanceImpl.java:155)
at com.hazelcast.instance.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:126)
at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance
(HazelcastInstanceFactory.java:218)
at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance
(HazelcastInstanceFactory.java:176)
at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance
(HazelcastInstanceFactory.java:126)
at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:87)
at server.HCServer.(HCServer.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at server.HCServer.main(HCServer.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)

1 个答案:

答案 0 :(得分:2)

您想修改HCServer的构造函数吗

public HCServer() {
   Config config = new XmlConfigBuilder().build();
   config.setClassLoader(this.getClass().getClassLoader());
   HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
}

让我知道它是否有效!