从托管bean发布时,警告“[Parameters]参数:忽略无效块”

时间:2011-09-13 20:24:36

标签: java jsf

我在托管bean中打开HttpURLConnection以发布到外部服务。当我拨打HttpUrlConnection.getInputStream()时,我收到以下警告:

  

WARN [参数]参数:无效的块被忽略

一切都处理得很好,但我想从我们的日志中保留一堆警告。导致此警告的原因是什么以及如何阻止它发生?

以下是相关代码:

@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
    ...
  }

}

2 个答案:

答案 0 :(得分:21)

只要查询字符串包含无效的块,例如没有名称的请求参数,就会发生此警告:

name1=value1&=value2&name3=value3

或在您的特定情况下,开头为&(实际上,第一个块无效):

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

根据评论,您似乎是HTTP连接到在同一容器上运行并登录到同一日志文件的服务。此警告实际上来自服务容器本身,而不是来自HttpURLConnection

答案 1 :(得分:0)

我通过添加以下内容从我的日志中删除了此警告:

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

到我的jboss-log4j.xml配置文件。 它之前被设置为TRACE级别。