在我的桌面應用程序中,我通過Web服務連接到服務器。 使用下面的代碼獲取客戶端機器的Tomcat狀態,我可以得到服務器的IP地址和端口號,但是如何找到服務器的Tomcat狀態?找到服務器tomcat是否啓動?
InetAddress locIP = InetAddress.getByName("127.0.0.1");
serverSocket = new ServerSocket(8080, 0, locIP);
在我的桌面應用程序中,我通過Web服務連接到服務器。 使用下面的代碼獲取客戶端機器的Tomcat狀態,我可以得到服務器的IP地址和端口號,但是如何找到服務器的Tomcat狀態?找到服務器tomcat是否啓動?
InetAddress locIP = InetAddress.getByName("127.0.0.1");
serverSocket = new ServerSocket(8080, 0, locIP);
您可以使用Java的URLConnection
如下:
try {
URL url = new URL("http://youserver.com");
URLConnection urlConnection = url.openConnection();
urlConnection.setConnectTimeout(2000); //Connection timeout
urlConnection.connect();
System.out.println("Server is up and running");
} catch (Exception e) {
System.out.println("Server is not yet up");
}
如果urlConnection.connect()
回報默默地在2秒內,意味着服務器啓動並運行,否則將拋出一個異常,表示服務器未啓動或網址是不正確的。
所有你需要做的,在這裏檢測到運行Tomcat或其他地方是試圖用new Socket().
如果這樣的作品,它的運行連接到它;如果沒有,不是。不要發送任何東西,只需立即關閉插座。
@downvoter請解釋。被接受的答案只是這個版本的更高版本。 – EJP
你可以使用[JMX](http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html)嗎? –
這段代碼並沒有像'客戶端機器Tomcat狀態'那樣的東西,無論如何。如果Tomcat已經在這臺主機上運行,假設它在端口8080上使用連接器,或者如果有任何事情已經在端口8080上監聽,它將會失敗。 – EJP