2016-08-25 10 views
0

をデシリアライズしようとしたときにClassNotFoundを起こし、春ブーツ生産と消費者のRabbitMQを使用して

  1. は私がプロデューサーを書いて、キューにオブジェクトa.b.MyObjectを送ります。
  2. キューに待機し、同じオブジェクトc.d.MyObjectを持つ別のプロジェクト(別のJVM)でコンシューマを書き込みました。

は、パッケージ構造が異なるため、私はによって引き起こさ取得しています:java.lang.ClassNotFoundExceptionが:a.b.MyObject

同じパッケージ構造を作る少し残念なことです問題を解決します。私は代わりにjsonsを転送するためにBeanを追加すると思いますが、それがパッケージの問題を解決するかどうかはわかりません。

答えて

1

にjava.lang.ClassNotFoundException:a.b.MyObject

は、Javaシリアライゼーションの性質であると、逆シリアル化側で同じクラスを持っていない限り、他に選択肢はありません。

はい、JSON MessageConverterが適切な場合は、wayを設定してください。

これは、__TypeId__(通常はクラス)のメッセージヘッダーをターゲットのローカルコンシューマのクラスに再マップすることができるAbstractJavaTypeMapper.setIdClassMapping()を意味します。

関連する問題