问题
在使用springboot
时,发现有个同事报了一个错:
getWriter() has already been called for this response 错误提示也比较明显,是被调用过了。
出错的部分代码如下:
代码语言:javascript复制try {
//有问题的部份
//PrintWriter out = null;
//out = response.getWriter();
//String json = new ObjectMapper().writeValueAsString(map);
//out.write(json);
//out.flush();
//out.close();
outputStream = response.getOutputStream();
String json = new ObjectMapper().writeValueAsString(map);
outputStream.write(json.getBytes());
outputStream.flush();
outputStream.close();
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注释部份为有问题的写法。
原因
response.getWriter()
是流的形式,只能被调用一次,老问题了,代码的下面部分写法解决这个问题。