在 Zuul 自定义过滤器中创建 HttpServletResponse 对象
Create HttpServletResponse object in Zuul custom filter
我有一个 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 对象?
尝试这样的事情:
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.setSendZuulResponse(false);
ctx.setResponseBody("<soap:Envelope xmlns:......</soap:Envelope>");
ctx.setResponseStatusCode(...);
return null;
}
我有一个 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 对象?
尝试这样的事情:
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.setSendZuulResponse(false);
ctx.setResponseBody("<soap:Envelope xmlns:......</soap:Envelope>");
ctx.setResponseStatusCode(...);
return null;
}