2010-09-14 24 views
11

estoy usando Spring 3 y cada vez que presentar un formulario HTML a un controlador de primavera me sale este mensaje, que no entiendo:Significado y solución para el mensaje de error Spring 3? "Uso getResponseBodyAsStream lugar se recomienda"

org.apache.commons.httpclient.HttpMethodBase getResponseBody 
WARNING: Going to buffer response body of large or unknown size. 
Using getResponseBodyAsStream instead is recommended. 

¿Hay una configuración cambio que puedo hacer en primavera para evitar esto?

Respuesta

14

Esto ocurre con la API commons-httpclient cuando se utiliza el método getResponseBody(). La advertencia significa que un cuerpo de respuesta podría ser muy grande (como una descarga de archivos grandes, etc.) y cargar todo en la memoria al mismo tiempo, ya que una Cadena podría ser muy ineficiente. La forma de evitar esta ineficiencia potencial es usar getResponseBodyAsStream(), que permitirá el almacenamiento en búfer y la transmisión del cuerpo de la respuesta.

No estoy seguro de por qué Spring está utilizando getResponseBody(). ¿Podría ser tu cliente HTTP? ¿Estás utilizando un cliente HTTP escrito a medida para realizar la solicitud?

+1

No estoy seguro de lo que quiere decir con "un cliente HTTP escrito a medida". Estoy usando Spring/Jetty en el lado del servidor y Firefox en el lado del cliente. – Linc

+0

Pensé que podría estar utilizando su propio cliente HTTP en una prueba de unidad, por ejemplo. Como está usando Firefox, la advertencia probablemente se desencadena por el uso que hace Spring de getResponseBody(). Si ese es el caso, no me preocuparía demasiado al respecto. Puede cambiar su configuración de log4j para suprimir la advertencia si le molesta, pero probablemente no sea motivo de alarma. – earldouglas

1

Puede agregar la configuración http.method.response.buffer.warnlimit=1024*1024*10 en application.properties. esto funciona para mi.

Cuestiones relacionadas