2013-11-27 5 views
0

В моем настольном приложении я подключаюсь к серверу через веб-службу. Используя приведенный ниже код получения статуса 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 секунд, означает, что сервер запущен и работает, иначе возникает исключение, которое указывает, что сервер не вверх или URL это неверно.

+0

Вы также должны вызвать 'dispose()' в случае успеха. – EJP

+0

хороший босс, он отлично работает .. спасибо .. – Prasad

+0

@EJP Я не мог найти 'dispose()' метод в 'URLConnection'. Какой объект вы имеете в виду? – Santosh

-1

Все, что вам нужно сделать, чтобы обнаружить запущенный Tomcat здесь или в другом месте, чтобы попытаться подключиться к нему с new Socket(). Если это работает, он работает; если нет, то нет. Не отправляйте ничего, немедленно закройте сокет.

+0

@downvoter Пожалуйста, объясните. Принятый ответ - это только версия более высокого уровня. – EJP

Смежные вопросы