java - javax.websocket 依赖使用
问题描述
大家好,我正在使用 Web Sockets,我必须导入javax.websocket依赖项。我已经从 https://jar-download.com/artifacts/javax.websocket下载 并将 jar 添加到我的项目中,代码是干净且没有错误的。这是我的代码
服务器代码:
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
public class Server {
@OnOpen
public void onOpen(Session session) {
System.out.println("Connected to endpoint: " + session.getBasicRemote());
try {
String name = "Duke";
System.out.println("Sending message to endpoint: " + name);
session.getBasicRemote().sendText(name);
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
@OnMessage
public void processMessage(String message) {
System.out.println("Received message in client: " + message);
Client.messageLatch.countDown();
}
@OnError
public void processError(Throwable t) {
t.printStackTrace();
}
}
客户端代码:
import java.io.IOException;
import java.net.URI;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.ContainerProvider;
import javax.websocket.DeploymentException;
import javax.websocket.WebSocketContainer;
public class Client {
final static CountDownLatch messageLatch = new CountDownLatch(1);
public static void main(String[] args) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
String uri = "ws://echo.websocket.org:80/";
System.out.println("Connecting to " + uri);
container.connectToServer(Client.class, URI.create(uri));
messageLatch.await(100, TimeUnit.SECONDS);
} catch (DeploymentException | InterruptedException | IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我的问题是在运行服务器时出现以下错误:
线程“main”java.lang.RuntimeException 中的异常:找不到实现类。在 javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73) 在 test.Client.main(Client.java:80)
据我所知,错误是说 ContainerProvider. 但是我在项目中导入的 jar 中存在相同的类。
请纠正我或建议我哪里出错了。顺便说一句,我正在关注这个 git hub 项目。
提前致谢。
解决方案
推荐阅读
- xcode - UICollectionView 的单元格中的按钮不起作用
- python - tkinter 文本插入 wordstart 的问题
- php - 创建自定义用户电子邮件
- c - 如何编译 C 程序,使二进制文件仅在不同的返回值上有所不同?
- python - 模块“accounts.views”没有属性“signup”
- python - 我想从简历中提取特定部分
- mariadb - 如何在运行单元测试时启动 mariadb
- jquery - 剑道下拉列表值未通过
- firebase - Google sign in working on emulator but not on Android device flutter
- header - 滚动时如何使内容不在固定导航栏下方?