0

remoteListen メソッドを使用して gridgain で検出イベントをリッスンするように構成しましたが、future.get() を呼び出すと、次の例外が発生します

ここに例外スタック トレース lass org.gridgain.grid.GridException: Failed to serialize object: StartRequestData [prjPred=null, clsName=null, depInfo=null, hnd=org.gridgain.grid.kernal.GridEventConsumeHandler@7f977fba, bufSize= があります。 1, interval=0, autoUnsubscribe=true] 詳細については、以下を参照してください: トラブルシューティング: http://bit.ly/GridGain-Troubleshooting ドキュメント センター: http://bit.ly/GridGain-Documentation

    at org.gridgain.grid.marshaller.optimized.GridOptimizedMarshaller.marshal(GridOptimizedMarshaller.java:316)
    at org.gridgain.grid.kernal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1043)
    at org.gridgain.grid.kernal.processors.continuous.GridContinuousProcessor.startRoutine(GridContinuousProcessor.java:501)
    at org.gridgain.grid.kernal.GridEventsImpl.remoteListen(GridEventsImpl.java:101)
    at org.gridgain.grid.kernal.GridEventsImpl.remoteListen(GridEventsImpl.java:88)
    at com.cmc.facts.startup.GridConfig.remoteListen(GridConfig.java:174)
    at com.cmc.facts.startup.GridConfig.afterPropertiesSet(GridConfig.java:124)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)Sep 28, 2015 2:10:43 PM org.gridgain.grid.logger.java.GridJavaLogger info

情報: ASYNC モードでプリロードが完了しました [キャッシュ = 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 at org .gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.write(GridOptimizedClassDescriptor.java:816) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0(GridOptimizedObjectOutputStream.java:197) org.gridgain.grid.marshaller.optimized .GridOptimizedObjectOutputStream.writeFields(GridOptimizedObjectOutputStream.java:489) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeSerializable(GridOptimizedObjectOutputStream.java:301) org.gridgain.grid.marshaller.optimized.org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0(GridOptimizedObjectOutputStream.java:197) の GridOptimizedClassDescriptor.write(GridOptimizedClassDescriptor.java:820) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverride(GridOptimizedObjectOutputStream.java: 128) org.gridgain.grid.kernal.GridEventConsumeHandler.writeExternal(GridEventConsumeHandler.java:301) で java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) で org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeExternalizable (GridOptimizedObjectOutputStream.java:269) org.gridgain.grid.marshaller.optimized.GridOptimizedClassDescriptor.write(GridOptimizedClassDescriptor.java:810) org.gridgain.grid.marshaller.optimized.org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverride(GridOptimizedObjectOutputStream.java:128) の GridOptimizedObjectOutputStream.writeObject0(GridOptimizedObjectOutputStream.java:197) org.gridgain の java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) .grid.kernal.processors.continuous.GridContinuousProcessor$StartRequestData.writeExternal(GridContinuousProcessor.java:1371) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeExternalizable(GridOptimizedObjectOutputStream.java:269) org.gridgain.grid.marshaller .optimized.GridOptimizedClassDescriptor.write(GridOptimizedClassDescriptor.java:810) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObject0(GridOptimizedObjectOutputStream.java:197) org.gridgain.grid.marshaller.optimized.GridOptimizedObjectOutputStream.writeObjectOverride(GridOptimizedObjectOutputStream.java:128) で java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) で org.gridgain.grid.marshaller.optimized.GridOptimizedMarshaller .marshal(GridOptimizedMarshaller.java:311) ... 44 件以上

4

1 に答える 1

0

ほとんどの場合、リスナーを匿名クラスとして宣言しました。Java の匿名クラスには親クラスへのリンクがあるため、この親クラスのインスタンスもシリアル化されます。この場合、リスナーを内部静的クラスに変換し、Serializable インターフェイスでマークすることをお勧めします。このようにして、アプリケーションでシリアル化されるものをより詳細に制御できます。

于 2015-09-28T21:59:45.363 に答える