从受管 Bean 发布时警告“[参数] 参数:忽略无效块”

2022-09-04 19:23:11

我正在从托管 Bean 内部打开一个以发布到外部服务。当我拨打电话时,我收到以下警告:HttpURLConnectionHttpUrlConnection.getInputStream()

警告 [参数] 参数:忽略无效块

一切都很好,但我想从我们的日志中保留一堆警告。是什么导致了此警告,我该如何阻止它发生?

以下是相关代码:

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

}

答案 1

每当查询字符串包含无效块(如没有名称的请求参数)时,就会出现此警告:

name1=value1&=value2&name3=value3

或者在你的特定情况下,开头的 a(基本上,第一个块是无效的):&

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

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


答案 2

我从日志中删除了此警告,方法是添加:

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

到我的 jboss-log4j.xml 配置文件。之前已将其设置为跟踪级别。


推荐