1 原因:其实已经比较明显了,就是getWriter()已经被调用过一次了,再调用的话就会抛这个异常。
然后我排查了下项目代码,发现我在网关的时候真的已经调用过一次了,具体代码如下
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(JsonHelper2.toJson(ResponseUtils.instance(CodeMsgDef.XXX)));
return null;
然后请求又被路由到具体的微服务,然后请求是成功的,具体返回的时候,框架应该又调用了一次
response.getWriter().write(…),然后又抛异常了
2 解决思路:控制到网关的请求不再路由转发
// 当前请求不再路由转发
ctx.setSendZuulResponse(false);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(JsonHelper2.toJson(ResponseUtils.instance(CodeMsgDef.XXX)));
return null;