org.apache.commons.httpclient.ProtocolException: Unbuffered entity enclosing request can not be repeated.
将 Apache HTTP 客户端库 4.x 与 Restlet 1.1 一起使用时出现间歇性异常。请求实体的类型为 ,与已知大小相关联,大小在实例化时指定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.");
}
老实说,这个异常的原因尚不清楚(尤其是由于它的间歇性)。但是,一些研究表明,使用 Apache BufferedHttpEntity 来包装请求实体应该会有所帮助。
有没有办法通知 Restlet 在将其请求传递给 Apache 库进行处理时使用 BufferedHttpEntity?问题的原因可能是什么?