0

私は Wink に比較的慣れておらず、バイト配列を含む POJO が応答のために json に不適切にシリアル化されている [と思う] という欠陥をデバッグしようとしています。不適切とは、バイト配列に抽出された blob として格納されている Unicode 文字があり、バイト配列が json にシリアル化されると、Unicode バイトが表す必要がある UTF-8 文字以外のものとしてデコードされることを意味します。

この問題を追跡しようとして、要求リソースから返されるポイントまで、バイトが期待どおりに見えることを検証しました。私の @GET リクエスト リソース メソッドは List を返します。ガイドを読んで理解した

  1. RequestHandler チェーンが実行され、最終的にリソース メソッドが呼び出されます...
  2. リソース メソッド (この場合は @GET) からの戻り値は、ResponseHandler チェーンに渡されるメッセージ コンテキストに入るはずです...

私の懸念は、私のリソース メソッドによって返された、byte[] を含む pojo のコンテンツが正しくシリアル化されておらず、ユーザーに送信されている無効な json コンテンツを生成していることです。返されたリストはどのようにして messageContext に入りますか?

このアプリケーションを実行しているマシンにデバッガを接続できません。

4

1 に答える 1

0

私は私の質問に部分的に答えました。リソース メソッドから返されたオブジェクトは、MessageContext オブジェクトの responseEntity プロパティに関連付けられます。messageContext.setResponseEntity() が org.apache.wink.server.handlers.RequestHandler.InvokeMethodHandler によって呼び出されると想定していますが、これは確認していません。

byte[] が json にシリアル化されているときに、UTF-8 エンコーディングを想定していない (そしてその後、特殊文字をマングリングする) 理由を理解する必要があります。

于 2013-02-01T00:57:18.190 に答える