关于Spring boot jar的问题。
在生产机器上运行jar时:
java -jar xyz.jar
它没有回应我的要求。因为它正在监听ipv6。
但是当我将应用程序作为
运行时
java -jar xyz.jar -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses
它回应了我的要求。
生产机器的配置是否会导致应用程序通过ipv6进行监听,还是有其他原因?
幸运的是
-Djava.net.preferIPv4Stack = true
-Djava.net.preferIPv4Addresses
参数解决了我的问题。但我很困惑!!
注意:Tomcat用作嵌入式服务器。
Spring boot version 1.5.4 RELEASE
答案 0 :(得分:0)
在https://docs.oracle.com/javase/8/docs/technotes/guides/net/ipv6_guide/index.html中,我读到“ Java网络堆栈首先检查底层OS是否支持IPv6。如果支持IPv6,它将尝试使用IPv6堆栈。”
要检查您的Linux机器是否支持IPv6,只需运行“ cat / proc / net / if_inet6”,如果看到一些输出,则表示已启用。