Events 在gridgain中配置发现事件

Events 在gridgain中配置发现事件,events,gridgain,ignite,Events,Gridgain,Ignite,我已配置为使用remoteListen方法在gridgain中侦听发现事件,但当我调用future.get时,会出现以下异常 下面是异常堆栈跟踪 lass org.gridgain.grid.GridException:未能序列化对象:StartRequestData[prjPred=null,clsName=null,depInfo=null,hnd=org.gridgain.grid.kernal。GridEventConsumeHandler@7f977fba,bufSize=1, 间隔=

我已配置为使用remoteListen方法在gridgain中侦听发现事件,但当我调用future.get时,会出现以下异常

下面是异常堆栈跟踪 lass org.gridgain.grid.GridException:未能序列化对象:StartRequestData[prjPred=null,clsName=null,depInfo=null,hnd=org.gridgain.grid.kernal。GridEventConsumeHandler@7f977fba,bufSize=1, 间隔=0,自动取消订阅=真] 有关更多信息,请参阅: 故障排除: 文件中心:

信息:在异步模式下完成预加载[cache=PIDCache,时间=250毫秒]

    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    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)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
原因:java.io.NotSerializableException:必须实现java.io.Serializable或将GridOptimizedMarshaller.setRequireSerializable设置为false注意,如果对象不可用,性能可能会降低 变量化:com.cmc.facts.startup.GridConfig 位于org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.writeGridOptimizedClassDescriptor.java:816 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0GridOptimizedObjectOutputStream.java:197 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeFieldsGridOptimizedObjectOutputStream.java:489 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeSerializableGridOptimizedObjectOutputStream.java:301 位于org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.writeGridOptimizedClassDescriptor.java:820 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0GridOptimizedObjectOutputStream.java:197 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverrideGridOptimizedObjectOutputStream.java:128 在java.io.ObjectOutputStream.WriteObjectOutputStream.java:344 位于org.gridgain.grid.kernal.gridEventConsumerHandler.WriteExternalGridEventConsumerHandler.java:301 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeExternalizableGridOptimizedObjectOutputStream.java:269 位于org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.writeGridOptimizedClassDescriptor.java:810 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0GridOptimizedObjectOutputStream.java:197 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverrideGridOptimizedObjectOutputStream.java:128 在java.io.ObjectOutputStream.WriteObjectOutputStream.java:344 位于org.gridgain.grid.kernal.processors.continuous.GridContinuousProcessor$StartRequestData.writeExternalGridContinuousProcessor.java:1371 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeExternalizableGridOptimizedObjectOutputStream.java:269 位于org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.writeGridOptimizedClassDescriptor.java:810 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0GridOptimizedObjectOutputStream.java:197 位于org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverrideGridOptimizedObjectOutputStream.java:128 在java.io.ObjectOutputStream.WriteObjectOutputStream.java:344 位于org.gridgain.grid.marshaller.optimized.GridOptimizedMarshaller.marshaller.java:311
... 44更多

您很可能将您的侦听器声明为匿名类。Java中的匿名类有一个到父类的链接,因此该父类的实例也被序列化。如果是这种情况,我建议将侦听器转换为内部静态类,并用Serializable接口标记它。通过这种方式,您可以更好地控制应用程序中序列化的内容。

我尝试在网格配置中为Gridmarshaller设置serialized=false,但随后出现了一个可外部化的异常
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    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)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)