Jettyのプロキシサーブレットを使用して、フロントエンドクライアントからCouchデータベースにリクエストをルーティングしています。プロキシに加えて、CouchDBによって使用される着信リクエストに追加の詳細を挿入しています。HTTPリクエストは、を拡張することで変更されHTTPServletRequestWrapperます。getContentLengthメソッドをオーバーライドしてのサイズを再計算するinputStreamと、元のリクエストのサイズのコンテンツのみがCouchDBに送信され、入力JSONが無効であるため、Couch DBはBadRequest(400 HTTP)コードを発行します。Jettyロガーでは、contentWritten != contentLengthメッセージ。Content-Lengthヘッダーを完全に削除すると、Jettyは期待どおりにリクエストを送信し、すべてのコンテンツをプロキシされたリクエストにコピーします。getContentLengthこのアプローチが機能する場合でも、のメソッドをオーバーライドして正しいコンテンツ長が設定されている場合でも、Jettyが変更されたリクエストコンテンツを送信しない原因は何でしょうかServletInputStream。
Jetty 8.1.3バージョンを使用していますが、すべてのリクエストはJSONリクエスト/レスポンスです。ServletInputStreamクラスとメソッドもサブクラス化したread()ので、問題ないと思います。