gpt4 book ai didi

macos - Ant 套接字任务在 Mac 上不起作用

转载 作者:行者123 更新时间:2023-11-28 22:41:52 25 4
gpt4 key购买 nike

我在 build.xml 上得到了以下内容

<target name="check-port" description="Check whether Tomcat is running">
<condition property="tomcat.running">
<socket server="localhost" port="8080"/>
</condition>
</target>

它突然停止在 mac 上工作,在 windows 上它工作正常,但在 mac 上它显示为 true,即使我在 localhost:8080 上没有任何运行。

我不确定为什么会这样或者为什么它在 Windows 上工作。它曾经在 mac 上工作...

我正在 OSX Yosemite 版本 10.10.2 上进行测试

这可能与什么有关?我该如何解决?

最佳答案

我要做的第一件事是通过编译和运行以下代码来模拟 ant 条件代码的行为:

import java.net.Socket;
import java.io.IOException;
public class Test {
public static void main(String args[]) {
try {
Socket socket = new Socket("localhost", 8080);
} catch (IOException e) {
System.out.println("down");
System.exit(0);
}
System.out.println("up");
}
}

如果 that 在 Tomcat 未运行时输出 up 那么您在 javalsof 之间存在根本分歧什么是“正”,有待考察。

一种查看是否确实有东西的方法是尝试连接到它,例如:

telnet localhost 8080

如果连接正常,我通常会尝试 lsof 来查看是哪个进程获得了它,但是正如您所说,这似乎不起作用。可能是不同的工具,例如:

netstat -na | grep ':8080 '

会成功的。


如果它输出 down 那么你有一个不同的问题,ant 中的一些问题或者可能是你的构建过程本身启动了服务器(或不同的服务器)。这需要进一步调查,但你至少已经缩小了问题的范围。

然后您可能会尝试的一件事是在您的构建过程本身中运行该 Java 代码,以查看它在 ant 告诉您服务器存在的同时在想什么。

关于macos - Ant 套接字任务在 Mac 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29381295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com