Ant 套接字任务无法在 mac 上运行
Ant socket task not working on mac
我在 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,即使我在 运行 上什么也没得到22=].
我不确定为什么会发生这种情况或为什么它在 windows 上起作用。它曾经在 mac...
上工作
我正在 OSX Yosemite 版本 10.10.2
上进行测试
这可能与什么有关?我该如何解决?
我要做的第一个事情是通过编译和运行ning以下代码来模拟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 不是 运行ning 时输出 up
那么你在 java
和lsof
什么构成 "upness",还有一个需要调查。
查看是否确实存在 的一种方法是 试图连接到它的东西,例如:
telnet localhost 8080
如果连接正常,我通常会尝试 lsof
看看是哪个进程获得了它,但正如您所说,这似乎不起作用。可能是其他工具,例如:
netstat -na | grep ':8080 '
会成功的。
如果它输出 down
那么你有一个不同的问题,可能是 ant
中的一些问题,或者可能是你的构建过程本身启动了服务器(或不同的服务器)。这将 也 需要进一步调查,但你至少已经缩小了问题的范围。
然后您可能会尝试的一件事是 运行 构建过程本身中的 Java 代码,以查看它在同一时间的想法 ant
告诉您服务器有吗
我发现了问题。
似乎 ESET 防病毒软件正在 localhost:8080 上启动一个进程调用 'esets_proxy',但有趣的是它在 lsof
或 netstat
上是不可见的。奇怪的是,当我在 8080 上启动野蝇时,它变得可见了。但只有当野蝇是 运行 时,我关闭它后它才会停止显示。我删除了 ESET,ant 套接字任务停止显示正在使用的端口 8080。
谢谢@paxdiablo,你的帮助真的很有用!
我 运行 在 OS X 上遇到与卡巴斯基反病毒软件相同的问题,它在本地主机 8080 上启动一个不可见的进程(没有 netstat)。
我在 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,即使我在 运行 上什么也没得到22=].
我不确定为什么会发生这种情况或为什么它在 windows 上起作用。它曾经在 mac...
上工作我正在 OSX Yosemite 版本 10.10.2
上进行测试这可能与什么有关?我该如何解决?
我要做的第一个事情是通过编译和运行ning以下代码来模拟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 不是 运行ning 时输出 up
那么你在 java
和lsof
什么构成 "upness",还有一个需要调查。
查看是否确实存在 的一种方法是 试图连接到它的东西,例如:
telnet localhost 8080
如果连接正常,我通常会尝试 lsof
看看是哪个进程获得了它,但正如您所说,这似乎不起作用。可能是其他工具,例如:
netstat -na | grep ':8080 '
会成功的。
如果它输出 down
那么你有一个不同的问题,可能是 ant
中的一些问题,或者可能是你的构建过程本身启动了服务器(或不同的服务器)。这将 也 需要进一步调查,但你至少已经缩小了问题的范围。
然后您可能会尝试的一件事是 运行 构建过程本身中的 Java 代码,以查看它在同一时间的想法 ant
告诉您服务器有吗
我发现了问题。
似乎 ESET 防病毒软件正在 localhost:8080 上启动一个进程调用 'esets_proxy',但有趣的是它在 lsof
或 netstat
上是不可见的。奇怪的是,当我在 8080 上启动野蝇时,它变得可见了。但只有当野蝇是 运行 时,我关闭它后它才会停止显示。我删除了 ESET,ant 套接字任务停止显示正在使用的端口 8080。
谢谢@paxdiablo,你的帮助真的很有用!
我 运行 在 OS X 上遇到与卡巴斯基反病毒软件相同的问题,它在本地主机 8080 上启动一个不可见的进程(没有 netstat)。