В настоящее время мы пытаемся внедрить сервер WebSocket с помощью Tyrus, и все шло нормально (связь между сервером и клиентом работала хорошо), пока мы попытался проверить, что произойдет, если инициализация сервера завершится неудачно (например, плохой порт).
Базовый код выдает SocketException (отказано в доступе). Исключение записывается в stdout, но сервер продолжает работу, и программа продолжает работать после метода start().
public void runServer() {
// bad port number
Server server = new Server("localhost", 10, "/websockets", null, EchoEndpoint.class);
try {
server.start();
// this line should not be printed
System.out.println("Server started");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please press a key to stop the server.");
reader.readLine();
} catch (Exception e) {
System.out.println("Exception caught");
e.printStackTrace();
} finally {
server.stop();
}
}
Есть ли способ определить, успешно ли запущен сервер?
РЕДАКТИРОВАТЬ: мы знаем, что не можем использовать порт 10 (поэтому мы и попробовали). Нам просто нужно проверить, работает ли сервер (каким-то образом перехватив исключение). (И мы не хотим тестировать его попыткой отправить какие-то фиктивные данные с клиентом - это не решит проблему)