我有一个PRE_TYPE
类型的Zuul自定义过滤器。
当我收到请求时,我想阻止其路由,而是发送响应(在这种情况下为SOAP消息),因为我正在模拟Web服务响应。
我的自定义过滤器:
@Component
public class CustomFilter extends ZuulFilter {
private ThreadLocal<byte[]> buffers;
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = getCurrentContext();
ctx.unset();
String s= "<soap:Envelope xmlns:......</soap:Envelope>";
}
@Override
public String filterType() {
return FilterConstants.PRE_TYPE;
}
@Override
public int filterOrder() {
return 0;
}
}
我需要创建一个HttpServletResponse并用响应填充并将其写入输出流,以便客户端接收该响应。 如何创建servletresponse对象?
答案 0 :(得分:2)
尝试这样的事情:
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.setSendZuulResponse(false);
ctx.setResponseBody("<soap:Envelope xmlns:......</soap:Envelope>");
ctx.setResponseStatusCode(...);
return null;
}