文字列リテラルtrue
またはfalse
とContent-Type: application/json
ヘッダーを返すWebサーバー上のエンドポイントがあります。私はこのエンドポイントにアクセスし、応答を単純な0に変換するJerseyクライアントを作成しようとしています。クライアントが要求を処理しようとするとカスタムプロバイダクラスを作成してJSONをブール値に変換するにはどうすればよいですか?
WebResource queryResource = client.resource("http://path.to/my/endpoint");
WebResource.Builder queryBuilder = queryResource.getRequestBuilder();
queryBuilder.addHeader("Authorization", "Bearer 1234...");
Boolean result = queryBuilder.get(new GenericType<Boolean>(){});
は、残念ながら、私はClientHandlerException
で終わると言う:
私のコードの関連部分は次のようになります
メッセージ本文Javaクラスjava.lang.Boolean、Javaタイプクラスjava.lang.Boolean、MIMEメディアタイプapplication/json。文字セット= UTF-8は
が見つかりませんでしたログ内のいくつかの詳細もこれを強調表示します:
The registered message body readers compatible with the MIME media type are:
application/json; charset=UTF-8 ->
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
私の最高の推測では、私ができる明示的にカスタム@Provider
クラスのいくつかの種類を追加する必要があるということですapplication/json
からBoolean
への変換を処理します。しかし、私はこれにはとても新しいし、前にプロバイダを書いたこともありません。私は人々のいくつかの例がJacksonJsonProvider
に拡張されているのを見ましたが、他の用途のために。誰かが私に何をすべきかを示すか、このプロバイダをどのように書くことができるかについて私にいくつかのリソースを教えてもらえますか? (また、ジャージークライアントに追加する方法は?