首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gridgain序列化异常

Gridgain序列化异常
EN

Stack Overflow用户
提问于 2014-06-03 18:07:44
回答 1查看 186关注 0票数 0

我第一次尝试gridgain,遇到了一些序列化的问题。在尝试使用GridClosure在不同节点上投影作业时,我得到了封送处理异常。在调试时,故障似乎总是发生在Apache对象的log4j上。我很难避免记录器,并想知道这是否是一个已知的问题,或者我可以以某种方式解决这个问题。我将网格配置的requireSerializable设置为false。

代码语言:javascript
复制
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeSerializable(GridOptimizedObjectOutputStream.java:292)
    ... 45 more
Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeSerializable(GridOptimizedObjectOutputStream.java:295)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.write(GridOptimizedClassDescriptor.java:849)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0(GridOptimizedObjectOutputStream.java:198)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverride(GridOptimizedObjectOutputStream.java:129)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
    at java.util.Hashtable.writeObject(Hashtable.java:988)
    ... 50 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeSerializable(GridOptimizedObjectOutputStream.java:292)
    ... 55 more
Caused by: java.lang.NullPointerException
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream$PutFieldImpl.value(GridOptimizedObjectOutputStream.java:1003)
    at org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream$PutFieldImpl.put(GridOptimizedObjectOutputStream.java:965)
    at java.util.Vector.writeObject(Vector.java:1068)
    ... 60 more
EN

回答 1

Stack Overflow用户

发布于 2014-06-04 08:36:49

你能让Log4J对象成为静态的,这样它就不会影响序列化了吗?如果没有,GridGain允许您将记录器资源注入到几乎任何东西中,包括闭包。您可以在GridConfiguration中将GridLogger配置为GridLog4jLogger。

下面是一个示例:

代码语言:javascript
复制
GridRunnable run = new GridRunnable() {
    // Can be any logger, including GridLog4jLogger.
    @GridLoggerResource
    GridLogger log;

    @Override public void run() {
        log.info("Hello");

        // Do some logic.
    }
}

代码语言:javascript
复制
// Can be any logger, including GridLog4jLogger
final GridLogger log = grid.log();

GridRunnable run = new GridRunnable() {
    @Override public void run() {
        log.info("Hello");

        // Do some logic.
    }
}

有关详细信息,请参阅GridGain文档中的Resource Injection页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24012418

复制
相关文章

相似问题

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