我在 Groovy 1.8.6 中工作,在 JDK 1.6.0u33 上运行。当我的程序启动时,它会尝试通过连接到主机地址上的 telnet 端口来连接到同一主机上的另一个进程。它使用标准 Java 类 InetAddress 来确定本地主机地址。但是,由于某种原因,当我在 Windows XP VM 上启动程序时,主机地址解析为垃圾并且连接失败。
启动脚本包含此行用于诊断信息:
def serverAddress = "http://${InetAddress.localHost.hostAddress}:${config.ServerPort}/DigitizerService?wsdl"
serverAddress
打印到终端
时的输出为:http://0.1.0.5:8989/DigitizerService?wsdl
地址并不总是相同的 - 另一次它是0.2.0.5
. 但它总是以甚至不是有效地址的形式出现,更不用说该主机的实际地址了。
这个相同的代码库正在大量的盒子上生产,我从来没有见过这样的问题,所以我猜它一定是特定于这个新的 devbox 的——或者它是新的错误JDK。
有谁知道什么可能导致像这样基本的东西输出垃圾?提前致谢。