2011-09-13 10 views
11

Estoy abriendo un HttpURLConnection desde dentro de un bean administrado para publicarlo en un servicio externo. Cuando hago la llamada a HttpUrlConnection.getInputStream() estoy recibiendo la siguiente advertencia:Advertencia "[Parámetros] Parámetros: fragmento no válido ignorado" al publicar desde un bean administrado

advierten [parámetros] Parámetros: trozo no válida ignorado

procesa todo muy bien, pero me gustaría mantener un montón de esas advertencias fuera de nuestros registros. ¿Qué está causando esta advertencia y cómo puedo evitar que ocurra?

Este es el código correspondiente:

@ManagedBean 
@SessionScoped 
public class MyController { 

    private void doStuff() { 
    ... 
    URL url = new URL(externalServiceUrl); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setDoOutput(true); 
    conn.setDoInput(true); 

    wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.write(postData); 
    wr.flush(); 

    InputStream is = conn.getInputStream(); // Warning logged after this line 
    ... 
    } 

} 
+0

Entonces ... ¿Si superas esa línea, entonces la advertencia ya no aparece? Es extraño, porque reconozco esto como una de las advertencias internas del servidor de Tomcat/JBoss cada vez que se envía un parámetro de solicitud sin un nombre, que a su vez no tiene absolutamente nada que ver con 'URLConnection # getInputStream()'. – BalusC

+0

Resulta que estaba construyendo mi cadena de datos posteriores con un "&" al comienzo. Como el servicio externo era en realidad una guerra más que se ejecutaba en la misma instancia de jboss, era la publicación del servicio externo que generaba la advertencia. Gracias por el comentario que me llevó a mi error! –

+0

¿Está conectado HTTP a un servicio que se ejecuta en el mismo contenedor y que se registra en el mismo archivo de registro? Qué incómodo ... :) De todos modos, volveré a publicar el comentario como una respuesta para que pueda aceptarlo. – BalusC

Respuesta

21

Esta advertencia puede ocurrir cada vez que la cadena de consulta contiene un trozo no válida, como un parámetro de petición sin un nombre:

name1=value1&=value2&name3=value3 

o en su particular, caso, un & al principio (esencialmente, el primer fragmento no es válido):

&name1=value1&name2=value2&name3=value3 

Según los comentarios, parece que se está conectando HTTP a un servicio que se ejecuta en el mismo contenedor y se registra en el mismo archivo de registro. Esta advertencia proviene en realidad del contenedor de servicio en sí, no del HttpURLConnection.

+0

Vi este error con un ampersand extra en la cadena de consulta (en este caso antes de name1: http://www.stackoverflow.com/blah?&name1=value1&name2=value2 – ptha

0

que eliminan esta advertencia de mis registros añadiendo:

<category name="org.apache.tomcat.util.http.Parameters"> 
    <priority value="ERROR"/> 

a mi archivo de configuración jboss- log4j.xml. Se estableció en el nivel TRACE antes.

Cuestiones relacionadas