コンストラクターを介して注入された依存関係を持つ blueprint.xml ファイルに設定されている TypeConverter クラスがあります。OSGI バンドルを FuseESB にデプロイするときに、クラスが作成されたことを確認できます。
convertBodyTo
キャメルコンテキストで要素を使用して型コンバーターを適用します
<convertBodyTo type="com.example.RegisterRequest" />
しかし、これはコンバーターの構築時にインスタンス化の例外で失敗します
Caused by: java.lang.InstantiationException: com.example.RegisterRequestConverter
at java.lang.Class.newInstance0(Class.java:359)[:1.7.0_21]
at java.lang.Class.newInstance(Class.java:327)[:1.7.0_21]
at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1166)
noarg コンストラクターを追加すると、コンバーターが作成されますが、明らかに依存関係はありません。
型コンバーターに関する Camel のドキュメントhttp://camel.apache.org/type-converter.htmlには、次のように記載されています。
静的メソッドはキャッシングを減らすために推奨されますが、特にオプションの依存性注入を許可してコンバーターをカスタマイズする場合は、インスタンス メソッドで問題ありません。
xml を介してルートを定義し、タイプ コンバーターの依存関係を注入することは可能ですか?