2013-11-27 46 views
0

在我的桌面應用程序中,我通過Web服務連接到服務器。 使用下面的代碼獲取客戶端機器的Tomcat狀態,我可以得到服務器的IP地址和端口號,但是如何找到服務器的Tomcat狀態?找到服務器tomcat是否啓動?

InetAddress locIP = InetAddress.getByName("127.0.0.1"); 
serverSocket = new ServerSocket(8080, 0, locIP); 
+0

你可以使用[JMX](http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html)嗎? –

+0

這段代碼並沒有像'客戶端機器Tomcat狀態'那樣的東西,無論如何。如果Tomcat已經在這臺主機上運行,​​假設它在端口8080上使用連接器,或者如果有任何事情已經在端口8080上監聽,它將會失敗。 – EJP

回答

0

您可以使用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秒內,意味着服務器啓動並運行,否則將拋出一個異常,表示服務器未啓動或網址是不正確的。

+0

你還應該在成功案例中調用'dispose()'。 – EJP

+0

不錯的老闆,它的工作很好..謝謝.. – Prasad

+0

@EJP我找不到'URLConnection'中的'dispose()'方法。你指的是哪個對象? – Santosh

-1

所有你需要做的,在這裏檢測到運行Tomcat或其他地方是試圖用new Socket().如果這樣的作品,它的運行連接到它;如果沒有,不是。不要發送任何東西,只需立即關閉插座。

+0

@downvoter請解釋。被接受的答案只是這個版本的更高版本。 – EJP