2017-06-15 14 views
0

gemfireからCacheListenerAdapterを実装しようとすると、次のエラーが発生します。Gemfire CacheListenerAdapterの実装ClassNotFoundException:org.apache.geode.pdx.internal.PdxType

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に新しい。上記のコードを使用して、データをウィンドウにプロットします。

+1

クライアントとサーバーで実行しているGemFireのバージョンは何ですか?これらのバージョン間で製品のパッケージ名が変更されると、クライアント上に8.2、サーバー上に9.xがあるように見えます。下位互換性のレイヤーがあるので、これは問題ではないはずですが、その詳細を提供してください。 –

答えて

2

クライアントはv8.2.2以降を実行している必要があります。 org.apache.geodeパッケージ名をcom.gemstone.gemfireに変換するコードが、このリリースで追加されました。

+0

私はクライアントv8.1.0を使用していましたが、v8.2.2にアップデートしましたが、すべて正常に動作しています。助けてくれてありがとう! – Unnikrishnan

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] 

あなたは今、あなたのサーバーのバージョンを確認し、サーバごとにクライアントjarを変更する「GemFireの-8.2.0.jar」を見ることができますを確認する必要があります。

関連する問題