代码之家  ›  专栏  ›  技术社区  ›  Marcin Wróblewski

无法建立WebSocket连接-Spark Java Framework

  •  0
  • Marcin Wróblewski  · 技术社区  · 7 年前

    我已尝试重新创建WebSocket聊天应用程序( http://sparkjava.com/tutorials/websocket-chat )在Spark Java框架中,偶然发现了一个问题。

    前端应用程序无法通过WebSocket连接到服务器。我查看了浏览器中的“网络”选项卡,发现有一个对服务器的正确WebSocket调用,但它的响应是 500代码 。服务器端没有日志,即使我添加了 系统出来打印LN 进入 @OnWebSocketConnect @OnWebSocketClose 功能。为什么会这样?

    每次发布应用程序时,我都会收到一条警告,上面写着:

    SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。
    SLF4J:默认为无操作(NOP)记录器实现
    SLF4J:参见 http://www.slf4j.org/codes 。。。。了解更多详细信息。

    我认为这不是问题所在,但可能值得一提。

    我也在main类中添加了一个异常捕捉器,但它没有启动:

    exception(Exception.class, (e, req, res) -> {
        System.err.println("Exception happened");
        e.printStackTrace();
    });
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Marcin Wróblewski    7 年前

    我设法解决了这个问题。问题很简单:我的 ChatWebSocketHandler 错误地执行了 @OnWebSocketClosed 那是

    public void onDisconnect(Session user) 
    

    而不是

    public void onDisconnect(Session user, int statusCode, String reason).
    

    当然,抛出了正确的异常,但我的SLF4J无效配置使其安静(NOP)。

    我已经解决了这个问题,并了解到我需要在下面添加依赖项

    compile "org.slf4j:slf4j-api:1.7.13"
    compile "org.slf4j:slf4j-simple:1.7.21"
    

    以使SLF4J正常工作。

    推荐文章