在Spring控制器中将重定向更改为前进

在Spring控制器中将重定向更改为前进,spring,spring-mvc,model-view-controller,Spring,Spring Mvc,Model View Controller,我有两个控制器在不同的机器上运行,我可以将请求重定向到第二个地址,但是我不能转发它。这是控制器: @RequestMapping(value = "/hostname", method = RequestMethod.GET) public ModelAndView hostName(HttpServletRequest request) { String redirectUrl = request.getContextPath() + "http://172.17.

我有两个控制器在不同的机器上运行,我可以将请求重定向到第二个地址,但是我不能转发它。这是控制器:

@RequestMapping(value = "/hostname", method = RequestMethod.GET)
    public ModelAndView hostName(HttpServletRequest request)  {

        String redirectUrl = request.getContextPath() + "http://172.17.0.54:8080/nexthostname?proxyHostName=host2";
        return new ModelAndView("redirect:" + redirectUrl);
    }
所以我总共有3台主机,第一台主机从主机3请求一些东西,但是主机3只能通过主机2访问。因此,我首先将请求发送到主机2,以便它可以从主机3获取请求并将其发送回主机1。如果我重定向,那么主机2将要求主机1直接联系主机3,主机1无法访问主机3


有没有关于如何转发此请求的线索?我是否应该通过主机2将GET请求转发或发送到主机3?

您不能。转发是在内部执行的。如果你需要转到另一台机器,它不是内部的。啊,好的,谢谢。我更新了问题。所以我应该向它发送GET请求吗?您应该向主机2发送GET并等待响应。主机2应该调用主机3并返回响应。您应该在
hostName
方法中调用主机2并处理响应,而不是重定向。查看
restTemplate
以获得简单的http调用。好的,非常感谢。