我正在从托管bean内打开HttpURLConnection
以发布到外部服务。当我呼叫HttpUrlConnection.getInputStream()
时,我得到以下警告:
WARN [Parameters]参数:Invalid chunk ignored
一切都很好,但是我想把这些警告从我们的日志中删除。是什么导致了这个警告,我该如何阻止它的发生?
相关代码如下:
@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
...
}
}
只要查询字符串包含无效块,例如没有名称的请求参数,就会出现此警告:
name1=value1&=value2&name3=value3
或者在您的特殊情况下,在开始的&
(本质上,第一个块是无效的):
&name1=value1&name2=value2&name3=value3
根据评论,你似乎是http连接到一个服务,运行在相同的容器和日志到相同的日志文件。此警告实际上来自服务容器本身,而不是来自HttpURLConnection
。
我通过添加:
将此警告从日志中删除<category name="org.apache.tomcat.util.http.Parameters">
<priority value="ERROR"/>
到我的jboss-log4j.xml配置文件。