ERROR AbstractCacheAdministrator:330 - Could not initialize listener
OsCache 集群配置错误在这个时候我用,jgroups.包是2.2.8版本的。
这些准备工作做好以后,启动服务器,然后我就去访问一个页面, 当然这个页面有用到cache缓存。如果正常,就会在服务器后台打印如下信息:
-----------------------------
GMS: address=ThinkPad-48956, cluster=OSCacheBus, physical address=192.168.100.85:1351
-------------------------------上面的信息就说明JavaGroupsBroadcastingListener已初始化启动完成。
但是没有打印出这个信息,就说明出问题了。当然我第一次测试的时候并没有出现上面的信息,这时候我从日志记录里看到了报错信息,就是LOG4J里配置的osache.log,
ERROR AbstractCacheAdministrator:330 - Could not initialize listener 'com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener'. Listener ignored.
com.opensymphony.oscache.base.InitializationException: Initialization failed: ChannelException: failed loading class: java.lang.ClassNotFoundException: [Lorg.jgroups.Address;
[Lorg.jgroups.Address这个东东在网上搜了好久,有些老外说是JDK的BUG,不支持,原因是ClassLoader.loadClass is not supposed to support the array class name
syntax,但是jdk一直没有修复这个bug。其次网上还有兄弟说运行ClassConfigurator的main函数也有问题,这段代码以前是没有问题,肯定是环境的问题。
然后继续查找,发现是jg-magic-map.xml里的问题,网上说删除<class>
<description>Object Array</description>
<class-name>[Ljava.lang.Object;</class-name>
<preload>true</preload>
<magic-number>37</magic-number>
</class>
就ok了。我在一些国外的网站上也查了,有些老外也是这么说的,把这个Lorg.jgroups.Address属性给他删除了就可以了,但是我测试发现,没用,你把这个删除后,它又来报错了:看看日志:
Could not initialize listener 'com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener'. Listener ignored.
com.opensymphony.oscache.base.InitializationException: Initialization failed: ChannelException: failed loading class: java.lang.ClassNotFoundException: [Ljava.lang.Object;
同样 [Ljava.lang.Object也在jg-magic-map.xml里,这个是JAVA的基础对象包,咋可能不认识。。。JavaGroupsBroadcastingListener还是不能正常初始化,郁闷了。。。
接着几天一直想着这个问题,网上慢慢的焦急的搜寻着答案。一直没搜到,后来直接去了JGROUPS的官网,看到有最新版2.8.GA,换个高级版本是不是就没问题了?
换上去了,然后我还是去访问有cache缓存的那个页面,果然换了这个高级版本的包还真没这个问题了。
-----------------------------
GMS: address=ThinkPad-48956, cluster=OSCacheBus, physical address=192.168.100.85:1351
--------------------------这个信息在服务器后台打印出来了,监听启动OK了,而且重新访问这个页面的时候,打开速度还是很快的,说明cache生效了。再
INFO JavaGroupsBroadcastingListener:117 - JavaGroups clustering support started successfully。
INFO AbstractBroadcastingListener:40 - AbstractBroadcastingListener registered
一切正常,而且监听也已注册,注册就是在知道有你这个监听节点,比如另一个服务器启动,也初始化正常,也注册了,这个服务器就知道集群中又多了一个节点。如下日志:
INFO JavaGroupsBroadcastingListener:189 - A new member at address 'ThinkPad-49675' has joined the cluster。
如果有一个注册过的服务器挂了或者是关闭了,就会看到如下日志信息:
INFO JavaGroupsBroadcastingListener:132 - JavaGroups shutting down...
INFO JavaGroupsBroadcastingListener:201 - Member at address 'ThinkPad-30262' left the cluster
INFO JavaGroupsBroadcastingListener:144 - JavaGroups shutdown complete.
最新jar包下载:
页:
[1]