Gemfire CacheListenerAdapter实现ClassNotFoundException:org.apache.geode.pdx.internal.PdxType

时间:2017-06-15 11:38:06

标签: spring-xd gemfire geode

当我尝试从gemfire实现CacheListenerAdapter时,我收到以下错误。

java.lang.ClassNotFoundException: org.apache.geode.pdx.internal.PdxType

我使用以下代码从gemfire获取缓存值。

import com.gemstone.gemfire.cache.Declarable; import com.gemstone.gemfire.cache.EntryEvent; import com.gemstone.gemfire.cache.util.CacheListenerAdapter; import com.gemstone.gemfire.pdx.internal.PdxInstanceImpl;

@Override public void afterUpdate(EntryEvent<K, V> event) { addToQueue((PdxInstanceImpl) event.getNewValue()); }

我正在addToQueue函数

中使用以下代码阅读价格

Double price = Double.parseDouble(instance.readField("Price").toString());

请注意,我从其他项目中复制了此代码,并且我是gemfire的新手。我使用上面的代码在窗口中绘制数据。

2 个答案:

答案 0 :(得分:2)

客户端需要运行v8.2.2或更高版本。在该版本中添加了将org.apache.geode包名称转换为com.gemstone.gemfire的代码。

答案 1 :(得分:0)

您可以获得以下错误,因为gemfire服务器和客户端有不同的jar版本。

java.lang.ClassNotFoundException: org.apache.geode.pdx.internal.PdxType
        at com.gemstone.gemfire.internal.ClassPathLoader.forName(ClassPathLoader.java:422) ~[gemfire-8.2.0.jar:na]

对于调试问题,您需要检查错误日志

com.gemstone.gemfire.internal.ClassPathLoader.forName(ClassPathLoader.java:422) ~[gemfire-8.2.0.jar:na]

您可以看到“gemfire-8.2.0.jar”现在检查您的服务器版本并根据服务器更改客户端jar。