本站首页    管理页面    写新日志    退出


«July 2018»
1234567
891011121314
15161718192021
22232425262728
293031


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9042856
建立时间:2004年12月20日




[java语言]jgroups的bug
原创空间,  文章收藏,  电脑与网络

邢红瑞 发表于 2008-5-12 21:27:32

 jgroups 2.2.9 使用时Exception in thread "main" org.jgroups.ChannelException: failed loading class: java.lang.ClassNotFoundException: [Ljava.lang.Object; at org.jgroups.conf.ClassConfigurator.init(ClassConfigurator.java:93) at org.jgroups.conf.ClassConfigurator.getInstance(ClassConfigurator.java:113) at org.jgroups.conf.ClassConfigurator.main(ClassConfigurator.java:211) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)运行ClassConfigurator的main函数也有问题,这段代码以前是没有问题,肯定是环境的问题。发现jg-magic-map.xml,提供"org.jgroups.conf.magicNumberFile" 系统属性。删除<class>        <description>Object Array</description>        <class-name>[Ljava.lang.Object;</class-name>        <preload>true</preload>        <magic-number>37</magic-number></class>就ok。原因是ClassLoader.loadClass is not supposed to support the array class namesyntax,但是jdk一直没有修复这个bug。运行一下代码import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.ObjectStreamClass; public class SerializeTest {     public static void main(String[] args) throws Exception {        String[] objs = new String[10];        objs[0] = new String();        String[] objs2 =            (String[])cloneObject(objs, SerializeTest.class.getClassLoader());    }        public static Object cloneObject(Object toClone,                                     final ClassLoader classLoader)        throws Exception    {        ByteArrayOutputStream bOut = new ByteArrayOutputStream();        ObjectOutputStream oOut = new ObjectOutputStream(bOut);        oOut.writeObject(toClone);        oOut.close();        ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray());        bOut.close();        ObjectInputStream oIn = new ObjectInputStream(bIn)        {            protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException            {                System.out.println("Attempting to load class "+desc.getName());                return classLoader.loadClass(desc.getName());            }        };        bIn.close();        Object copy = oIn.readObject();        oIn.close();        return copy;    }}抛出ttempting to load class [Ljava.lang.String; java.lang.ClassNotFoundException: [Ljava.lang.String; at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at com.sohu.blog.apiserver.util.RpcDaoImplTest$1.resolveClass(RpcDaoImplTest.java:49) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 这段代码也不行public void testLoadClassWithBytePrimitiveArray() throws Exception {  String byteArrayBinaryName = byte[].class.getName();  Class c = Thread.currentThread().getContextClassLoader().    loadClass(byteArrayBinaryName);  assertEquals(byte[].class, c); } jgroups 2.6.2 已经没有这个配置文件。


阅读全文(9314) | 回复(2) | 编辑 | 精华
 


回复:jgroups的bug
原创空间,  文章收藏,  电脑与网络

sjzczhangyan(游客)发表评论于2012-5-2 23:00:13

你好,我想请教你一些关于JGroups方面的东西,希望你能帮助我,谢谢! 关于JGroups的文档,除了官方的你有什么资料吗?还有这个开源软件的适用场合,网上看到的太泛泛了,比如电子教室的电子白板功能可以使用这个嘛?

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:jgroups的bug
原创空间,  文章收藏,  电脑与网络

sophia(游客)发表评论于2008-5-29 11:41:29

是不是换成了jgroups 2.6.2就不会报这样的错了

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144064385 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号