根据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连接器信息?