在RestController中确定多个Tomcat连接器中的哪个正在处理请求

时间:2019-07-04 13:57:27

标签: spring-boot spring-restcontroller tomcat9

根据this的帖子,可以指示嵌入式Tomcat在多个端口上进行侦听。 查看日志输出,我可以看到它正在工作:

  

o.s.b.w.embedded.tomcat.TomcatWebServer:Tomcat在端口上启动:   19900(http)19910(http)19920(http)的上下文路径为'

我的Web服务需要采取不同的反应,具体取决于它在哪个端口上服务:

@RestController
public class Webservice {
    @RequestMapping("/react")
    public String react() {
        String x = "unknown";
        return "Hello from port" + x;
    }
}

基本上,我正在寻找一种解决方案,该方法如何将x设置为已应用的Tomcat连接器的端口。 我向端点添加了HttpServletRequest request,并且能够使用request.getHeader("Host")来检索主机+端口信息,request.getRequestURL()返回了相同的信息(以及更多信息,如方案)

$ curl http://127.0.0.1:19920/react
Hello from 127.0.0.1:19920 / http://127.0.0.1:19920/react 
$ curl http://localhost:19920/react 
Hello from localhost:19920 / http://localhost:19920/react 
$ curl http://localhost:19900/react 
Hello from localhost:19900 / http://localhost:19900/react

是否可以获取完整的Tomcat连接器信息?

0 个答案:

没有答案