我有一台Citrix机器,我必须在那里运行一个web服务(使用Spring Boot开发(。它是Windows 10主机。有一种奇怪的行为-端口是随机选择的,而不是配置的8090端口。
我检查了我的应用程序属性,它清楚地显示
server.port=8090
代码没有问题,如果我从任何其他机器上运行它,它将按预期在8090端口启动。
它甚至在Citrix机器中打印出Tomcat服务器是用8090端口初始化的。但最终它从一个随机端口(22345(开始,如下日志所示。如果我停止并重新启动,它将在另一个端口启动(可能是23466(。
2021-06-28 13:45:52.490 INFO 31792 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8090 (http)
......
......
2021-06-28 13:45:53.348 INFO 31792 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 22345 (http) with context path ''
2021-06-28 13:45:53.355 INFO 31792 --- [ main] com.sreejesh.MainApplicationClass : Started MainApplicationClass in 3.701 seconds (JVM running for 4.798)
我甚至试图在命令行中覆盖它:
java -jar MyApp.jar --server.port=8090
结果仍然是一样的(就好像有人奇怪地重写了server.port=0以在随机端口中启动一样(。
我想重申,在我的本地机器中,一切都如预期的那样正常。只有在Citrix机器中才存在这种奇怪的行为。
关于为什么会发生这种情况,有什么线索吗?谢谢你抽出时间。
我们遇到了一个问题,看起来与您问题中的问题一模一样。经过一个多月的研究,我们终于找到了问题的根本原因并解决了问题。在我们的案例中,问题来自Palo Alto Networks在我们公司推出的下一代防火墙。在推出之后,在我们基于Citrix的虚拟PC上有一个名为"Citrix"的服务;PAN终端服务器代理";。当服务关闭时,没有任何问题。但出于显而易见的原因,这些服务应该启动并运行。因此,我们与IT部门进行了交谈,他们能够对防火墙(和/或PAN终端服务器代理,我不知道细节(进行一些配置更改,现在问题已经解决,尽管";PAN终端服务器代理";正在启动并运行。