またはとして、JAX-RS リソース メソッドから生のリクエスト ボディにアクセスするにはどうすればよいですjava.io.InputStreamかbyte[]? MessageBodyReaderコンテナーが特定のリソース クラスまたはメソッドに対してany をバイパスするようにしたいのですが、いくつかのMessageBodyReader.
私はこれを試しましたが、登録されたMessageBodyReaders を呼び出し、結果をに割り当てることができませんInputStream( と同じ問題byte[])。
@POST
public Response post(@Context HttpHeaders headers, InputStream requestBody) {
MediaType contentType = headers.getMediaType();
// ...
}
私もこれを試しましたが、コンテナは次のエラーで初期化に失敗します:
SEVERE: 次のエラーと警告が、リソース クラスやプロバイダー クラスで検出されました。 SEVERE: メソッド public javax.ws.rs.core.Response SomeResource.post(javax.servlet.http.HttpServletRequest) の依存関係がインデックス 0 のパラメーターにありません SEVERE: メソッド public javax.ws.rs.core.Response SomeResource.post(javax.servlet.http.HttpServletRequest) は、リソース クラス SomeResource の POST で注釈が付けられており、有効なリソース メソッドとして認識されません。
@POST
public Response post(@Context HttpServletRequest request) {
String contentType = request.getContentType();
InputStream requestBody = request.getInputStream();
// ...
}
@Pathメソッドは、別のリソース クラスのアノテーションを持つメソッドから作成されたサブ リソース クラスにあります。
私はJersey 1.11を使用しています。