jetty9 を使用して基本的な websocket 処理を実装しようとしています。すべてはマニュアルに従って行われます。
@WebServlet
public class SocketsServer extends WebSocketHandler {
@Override
public void configure(WebSocketServletFactory factory) {
factory.getPolicy().setIdleTimeout(100000);
factory.register(SocketClient.class);
}
@WebSocket(maxMessageSize = 64 * 1024)
public static class SocketClient {
@OnWebSocketConnect
public void onConnect(Session session) {
System.out.println("Connected: " + toString());
throw new RuntimeException("fail");
}
}
}
行に注意してくださいthrow new RuntimeException("fail");
。これらの注釈付き POJO のメソッドのいずれかで実行時例外がスローされた場合、それは黙って無視され、クライアントは切断されます。これは本番環境では何らかの形で役立つかもしれませんが (多分?)、開発者にとってはひどい動作です。問題は、これらのメソッドですべての例外をどのように処理および/またはログに記録できるかということです。