我有一个提供嵌入式 Jetty 的应用程序 (Java)。默认情况下,我尝试获取 Jetty 服务器的端口 8080。如果端口正在使用中,我会随机尝试一个:
try {
socket = new ServerSocket(def);
} catch (IOException e) {
socket = new ServerSocket(0);
}
问题是我有一个客户在8080上运行一个Tomcat。如果关闭tomcat,一切都很好。如果 Tomcat 作为服务运行,并且我的应用程序想要获取一个端口,它会获取默认端口 (8080),尽管 tomcat 正在那里监听。如果浏览 localhost:8080/test.html,我会从 Tomcat 得到一个 http 404。
所以只要 8080 端口上没有真正的请求,tomcat 似乎就在 hibernate 。
我想知道它为什么会起作用,它是如何起作用的,以及我怎样才能改变我的 java 代码来解决这个问题。
亲切的问候
请您参考如下方法:
更改 Tomcat 或 Jetty 以使用另一个端口。每个端口一个监听器。