我们正在尝试使用 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 方法之一中引发运行时异常,它会被静默忽略,并且客户端会断开连接。这可能对生产环境有用(也许?),但对开发人员来说这是一种可怕的行为。所以,问题是,我们如何处理和/或记录这些方法中的所有异常?