当我尝试从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的新手。我使用上面的代码在窗口中绘制数据。
答案 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。