2016-12-27 2 views
0

Iは、以下のスタックトレースでCodecNotFoundExceptionを持っていますcassandraとのマッピングのためのdatastax javaドライバの注釈。一貫性のないエラー/例外は、要求された操作が見つかりませんコーデック:使用 挿入データにしようとしているときに、[フロート<-> java.lang.Object上位]と[INT <-> java.lang.Object上位]

例外1 ::

Exception in thread "main" com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [float <-> java.lang.Object] 
    at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:56) 
    at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:25) 
    at com.datastax.driver.mapping.DriverThrowables.propagateCause(DriverThrowables.java:41) 
    at com.datastax.driver.mapping.Mapper.save(Mapper.java:275) 
    at com.coreanalytics.componentConfig.ChartConfigInteraction.saveChartConf(ChartConfigInteraction.scala:14) 
    at com.coreanalytics.componentConfig.testing$.delayedEndpoint$com$coreanalytics$componentConfig$testing$1(ChartConfigInteraction.scala:23) 
    at com.coreanalytics.componentConfig.testing$delayedInit$body.apply(ChartConfigInteraction.scala:18) 
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34) 
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) 
    at scala.App$$anonfun$main$1.apply(App.scala:76) 
    at scala.App$$anonfun$main$1.apply(App.scala:76) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) 
    at scala.App$class.main(App.scala:76) 
    at com.coreanalytics.componentConfig.testing$.main(ChartConfigInteraction.scala:18) 
    at com.coreanalytics.componentConfig.testing.main(ChartConfigInteraction.scala) 

例外2 ::

Exception in thread "main" com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [int <-> java.lang.Object] 
    at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:56) 
    at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:25) 
    at com.datastax.driver.mapping.DriverThrowables.propagateCause(DriverThrowables.java:41) 
    at com.datastax.driver.mapping.Mapper.save(Mapper.java:275) 
    at com.coreanalytics.componentConfig.ChartConfigInteraction.saveChartConf(ChartConfigInteraction.scala:14) 
    at com.coreanalytics.componentConfig.testing$.delayedEndpoint$com$coreanalytics$componentConfig$testing$1(ChartConfigInteraction.scala:23) 
    at com.coreanalytics.componentConfig.testing$delayedInit$body.apply(ChartConfigInteraction.scala:18) 
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34) 
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) 
    at scala.App$$anonfun$main$1.apply(App.scala:76) 
    at scala.App$$anonfun$main$1.apply(App.scala:76) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) 
    at scala.App$class.main(App.scala:76) 
    at com.coreanalytics.componentConfig.testing$.main(ChartConfigInteraction.scala:18) 
    at com.coreanalytics.componentConfig.testing.main(ChartConfigInteraction.scala) 

問題は、私が試して、同じコードを実行するには、この二つの異なる例外を取得しています。 (同じテーブル、同じ挿入操作、変更なし)で例外が発生し、intで2回目または3回目の例外が発生しました 私のテーブルを2回チェックしましたが、存在しないようですタイプに関する問題はありますが、なぜこの例外が発生するのですか?

約50個のカラムと約8個のUDTを持つ私のテーブルでは、ここでスキーマ全体を表示することは難しいです。また、Beanのプロパティを持つUDTフィールド型を検証しました。そして、私はScalaを使っています。

注:私はGuava依存関係の更新を試みたが、それが削除されたように、それはFutureCallBackに問題があります。

答えて

0

これは私にとっては単純な「バインディング」問題です。エラーがはっきり言っているように、あなたはオブジェクトにint/floatフィールドをバインドしています。ドライバはその方法を知らないので、その関連付けを行うことはできません。

修正は簡単です。各CFがアプリケーションレベルで正しく関連付けられていることを確認する必要があります。

テーブルの定義が失敗したときに理解できない場合は(巨大であっても)ここにテーブルの定義を入れ、データを列にバインドするコードもここに掲載してください。

+0

しかし、私2回チェックした。そして、たとえバインディングに間違いがあったとしても、違う例外を示しているのはなぜですか?私のテーブルスキーマには8つのUDTがありますが、ここでは9つのテーブルスキーマと9つのBeanクラスを投稿する必要がありますか? –

0

cql型がマッピングされるJava属性の型と一致しない場合、CodecNotFoundExceptionがスローされます。

は、以下のリンクを参照してください:

:私はそれが結合問題でなければなりません知っている Datastax Cassandra Driver throwing CodecNotFoundException

+0

@Phillip私はこれらのリンクを通過しました。私はこれらのドキュメントからのマッピングを学び、それを私のアプリで続けましたが、まだ私はこの問題を抱えています。私はまた、他のテーブルにマッピングを適用し、同じアプリケーションで期待通りに動作しました。 –

関連する問題