【问题标题】:WebSocket connection cannot be made - Spark Java Framework无法建立 WebSocket 连接 - Spark Java 框架
【发布时间】:2018-03-12 20:11:32
【问题描述】:

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

前端应用无法通过 WebSocket 连接到服务器。我查看了浏览器中的“网络”选项卡,并且对服务器进行了适当的 WebSocket 调用,但它以 500 代码 进行响应。服务器端没有日志,尽管我已将 System.out.println 添加到 @OnWebSocketConnect 和 @OnWebSocketClose 函数中。这是为什么呢?

在每次应用启动时,我都会收到一条警告:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。
SLF4J:默认为无操作 (NOP) 记录器实现
SLF4J:请参阅http://www.slf4j.org/codes.... 了解更多详情。

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

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

exception(Exception.class, (e, req, res) -> {
    System.err.println("Exception happened");
    e.printStackTrace();
});

【问题讨论】:

    标签: java websocket jetty slf4j spark-java


    【解决方案1】:

    我设法解决了这个问题。问题很简单:我的 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"
    

    到我的 gradle 文件以使 SLF4J 正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2019-09-15
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多