2016-05-06 8 views
0

現在、サーバの初期化が失敗した場合(たとえば不正なポート)に何が起きるか試してみるまで、Tyrusを使用してWebSocketサーバを実装しようとしています。Tyrus:サイレントサーバの起動時にエラーが発生する

基になるコードは、SocketException(permission denied)をスローします。例外は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を使用できないことを知っています(これが試した理由です)。サーバーが実行されているかどうかを確認するだけです(何とか例外が発生する)。 (そして、クライアントでダミーのデータを送信しようとすると、実際に問題を解決することはできません)。

答えて

0

あなたのポート番号「10」は標準ユーザーが使用するには低すぎます。特権ユーザーであるか1024以上のポート番号を使用する必要があります。

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

ありがとうございますが、このポートは使用できません。そのため、サーバーは起動しません(失敗した起動を「シミュレート」するのが最も簡単な方法です)。私の質問は、サーバーが起動しなかったことを検出する方法でした。 –

関連する問題