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