Tyrus: сбой запуска сервера без вывода сообщений

В настоящее время мы пытаемся реализовать WebSocket server с помощью 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();
    }
}

Есть ли способ определить, успешно ли запущен сервер?

EDIT: мы знаем, что не можем использовать порт 10 (Именно поэтому мы попробовали его). Нам просто нужно проверить, работает ли сервер (каким-то образом ловя исключение). (И мы не хотим тестировать его попыткой отправить некоторые фиктивные данные с клиентом — это не исправит проблему)

1 ответ

  1. Ваш номер порта ‘ 10 ‘ слишком низкий, чтобы его мог использовать обычный пользователь. Вы должны быть привилегированным пользователем или использовать номер порта больше 1024:

    Server server = new Server("localhost", 1025, "/websockets", null, EchoEndpoint.class)