我在 SpringXD 中有以下流定义:
stream create dataListener --definition "gemfire --regionName=data --useLocator=true --host=lithium --port=10334 | null" --deploy
但它给了我以下错误,并标记为“失败”:
[error 2015/04/09 16:09:20.265 ART <poolTimer-client-pool-2> tid=0x59] Unexpected error in pool task <com.gemstone.gemfire.cache.client.internal.LiveServerPinger$PingTask@5a422dfd>
java.lang.LinkageError: loader constraint violation: when resolving method "com.gemstone.gemfire.cache.client.internal.PingOp.execute(Lcom/gemstone/gemfire/cache/client/internal/ExecutablePool;Lcom/gemstone/gemfire/distributed/internal/ServerLocation;)V" the class loader (instance of org/springframework/xd/module/support/ParentLastURLClassLoader) of the current class, com/gemstone/gemfire/cache/client/internal/LiveServerPinger$PingTask, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for resolved class, com/gemstone/gemfire/cache/client/internal/PingOp, have different Class objects for the type p.execute(Lcom/gemstone/gemfire/cache/client/internal/ExecutablePool;Lcom/gemstone/gemfire/distributed/internal/ServerLocation;)V used in the signature
at com.gemstone.gemfire.cache.client.internal.LiveServerPinger$PingTask.run2(LiveServerPinger.java:83)
at com.gemstone.gemfire.cache.client.internal.PoolImpl$PoolTask.run(PoolImpl.java:1197)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at com.gemstone.gemfire.internal.ScheduledThreadPoolExecutorWithKeepAlive$DelegatingScheduledFuture.run(ScheduledThreadPoolExecutorWithKeepAlive.java:252)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
这以前发生过,我已经通过重新启动虚拟机来修复它。但是,我想知道如何以适当的方式修复它。
任何提示、解决方法或指南都会很有用。另外,如果您需要更多信息,请告诉我。
我正在使用最新版本的 Spring XD、1.1.1 和 Gemfire 版本 7.0.2。定位器与流部署位于同一节点中。我也在使用单节点拓扑。
谢谢!