このような署名付きのサービスメソッドがあります
Foo transform(Foo origin, String key){}
Jerseyを使ってリモートにしたい。Foo は、Jackson によって JSON にシリアル化/逆シリアル化する必要があります。また、そのようなリクエストには GET を使用したいと考えています。initParam FEATURE_POJO_MAPPING を追加しましたが、Foo を文字列として取得してから逆シリアル化することで完全に正常に動作します。お気に入り
@GET
@Path("transform")
@Produces({MediaType.APPLICATION_JSON})
Foo transform(@QueryParam("origin") String origin, @QueryParam("key") String key){
return transform(deserialize(foo), key);
}
Foo transform(Foo origin, String key){}
ご覧のとおり、Foo の出力は、Jackson を使用した Jersey によって完全にシリアライズ可能です。しかし、入力はそうではありません。
SEVERE: 次のエラーおよび警告が、リソースおよび/またはプロバイダー クラスで検出されました: SEVERE: メソッド public Foo Transformer.transform(Foo,java.lang.String) の依存関係がインデックス 0 のパラメーターにありません
SEVERE: メソッド、public Foo Transformerリソース、クラス Transformer の GET で注釈が付けられた .transform(Foo,java.lang.String) は、有効なリソース メソッドとして認識されません。
Jackson の手動呼び出しを防ぐにはどうすればよいですか?