java.lang.IllegalStateException: getWriter() has already been called for this response
解决方法:
以下代码就会报这种错误,已经使用PrintWriter 打印到浏览器了,还调用return 。
@RequestMapping("$api/design")
public Designer index(String moodTxt, HttpServletRequest request, HttpServletResponse response) {
Designer designer = GetUserInfo.currentUserInfo();
String callback = request.getParameter("callback");
if (!StringUtils.isEmpty(callback)) {//JSONP
response.setContentType("application/json;charset=UTF-8");
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(callback + "(" + JSON.toJSONString(designer) + ")");
out.flush();
out.close();
return null;
} catch (Exception e) {
e.printStackTrace();
}
}
return designer;
}
可以整理代码逻辑加一些判断,或者在最后使用return null;