1

@Consumes("application/json")POJO の JSON シリアル化を取り、それを POJO に逆シリアル化するメソッドを持つ既存の Jersey/JAX-RS アノテーション付きリソースがあります。いくつかのレガシーな理由から、Content-Type が "text/plain" であり、HTTP 本文のコンテンツがまだ JSON である場合にデータを消費できるようにする必要もあります。

これを達成する方法を知っている人はいますか?現在、@Consumes アノテーションを変更して「text/plain」を追加すると、Jersey は、「text/plain」MIME と私の Java タイプに適したメッセージ本文リーダーがないという例外をスローします。

A message body reader for Java class REDACTED, and Java type class REDACTED, and MIME media type text/plain was not found.

ありがとう!

4

2 に答える 2

2

これは、これを処理するより効率的な方法かもしれません。

@Provider
@Consumes({ MediaType.TEXT_PLAIN })
public class FTMessageBodyReader extends JacksonJsonProvider {

    @Override
    protected boolean hasMatchingMediaType(MediaType mediaType) {
        return true;
    }

}

final Client client = ClientBuilder.newClient();
client.register(new LoggingFilter(Logger.getLogger("FTCLientFactory"), true));
client.register(FTMessageBodyReader.class);
于 2016-03-25T14:18:03.553 に答える