java - 无法建立 WebSocket 连接 - Spark Java Framework

标签 java websocket jetty slf4j spark-java

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

前端应用程序无法通过 WebSocket 连接到服务器。我查看了浏览器中的“网络”选项卡,发现有一个对服务器的正确 WebSocket 调用,但它以 500 代码响应。即使我已将 System.out.println 添加到 @OnWebSocketConnect@OnWebSocketClose 函数中,服务器端也没有日志。这是为什么?

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

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.... for further details.

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

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

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

最佳答案

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

关于java - 无法建立 WebSocket 连接 - Spark Java Framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49234883/

相关文章:

java - AntBuilder 找不到包 org.junit

Java EE Websocket : How to send keep sending data without receiving message?

servlets - 在挤压 jetty 上部署黑色 war 时出现 404

java - Spark Java 框架中的连接池

java - 如何在 Heroku 上使用 reSTLet 在某些 URL 上强制使用 SSL

java - 将 java.lang.Boolean 转换为 Scala boolean 值

java - 如何使用 Eclipse 重构静态跟踪器的用法?

javascript - 如何使用 selenium for java 从 chrome 获取本地存储数据?

scala - Webbit websocket ws ://connection works but wss://handshake fails silently without any error?

python-3.x - Python Asyncio Websocket 未检测到 wifi 上的断开连接但在本地主机上检测到