Tyrus: сбой запуска тихого сервера

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


person Jan Legner    schedule 06.05.2016    source источник


Ответы (1)


Ваш номер порта «10» слишком мал для использования обычным пользователем. Вы должны быть привилегированным пользователем или использовать номер порта больше 1024:

Server server = new Server("localhost", 1025, "/websockets", null, EchoEndpoint.class)
person kofemann    schedule 08.05.2016
comment
Спасибо за ответ, но я знаю, что этот порт нельзя использовать. Именно поэтому сервер не запускается (и это самый простой способ имитировать неудачный запуск). Мой вопрос заключался в том, как определить, что сервер не запустился. - person Jan Legner; 10.05.2016