org.apache.commons.httpclient.ProtocolException: Unbuffered entity enclosing request can not be repeated.
Restlet1.1でApacheHTTPクライアントライブラリ4.xを使用すると、断続的な例外が発生します。リクエストエンティティのタイプは既知のサイズにInputRepresentation
関連付けられており、インスタンス化時にサイズが指定されています。ByteArrayInputStream
writeRequestBody
例外はクラスのメソッドでスローされますorg.apache.commons.httpclient.methods.EntityEnclosingMethod
if ((this.repeatCount > 0) && !requestEntity.isRepeatable()) {
throw new ProtocolException(
"Unbuffered entity enclosing request can not be repeated.");
}
正直なところ、この例外の原因は明確ではありません(特に断続的な性質のため)。ただし、一部の調査では、ApacheBufferedHttpEntityを使用してリクエストエンティティをラップすることが役立つはずであることが示唆されています。
処理のためにApacheライブラリにリクエストを渡すときにBufferedHttpEntityを使用するようにRestletに通知する方法はありますか?問題の原因は何でしょうか?