Websocket客户端找不到实现类
我将在此前面介绍一下,我没有使用任何Maven依赖关系,但我知道我缺少一个jar文件wls-api.jar
(至少这是我读过的)。Websocket客户端找不到实现类
要解决这个问题,我下载了oracle-weblogic-7.9.jar
,但问题依然存在。
唯一的例外是在这条线抛出
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
谁能告诉我,为什么这条线连续失败?
UPDATE:在进一步阅读的例子,我看到用这种依赖性
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
我javax.websocket-api.jar
在服务器和客户端的构建路径,因为它是必需的。我在这里错过了什么?
其他更新:我忘了包括抛出的错误!
Exception in thread "main" java.lang.RuntimeException: Could not find an implementation class.
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73)
at connect.<init>(connect.java:21)
at test.main(test.java:11)
javax.websocket api只是规范没有完整的实现你可能需要把jar文件tyrus-standalone-client-1.9.jar并尝试应该解决你的问题的同一个例子。我测试了我的例子,它工作正常。
希望这会帮助你。
不幸的是,你是对的,我最终做的是做一个使用JavaScript作为客户端的网页。我也有一个使用Autobahn websockets API的手机应用程序,可以用作客户端。 –
我认为RuntimeException
你遇到的是幸好不是由你自己的任何直接编码错误产生。
方法getWebSocketContainer()
,如here所述,只是试图加载其他类并获取服务器中的ContainerProvider
的静态实例。
的方法查找在
META-INF/services/javax.websocket.ContainerProvider
文件中列出的顺序ContainerProvider
实现类,返回从ContainerProvider
实现,是不是null
的WebSocketContainer
实施。
不幸的是,这意味着您的项目配置不正确。仔细检查以确保该文件包含在项目的构建路径中。
如果您正在查看的其他项目正在使用您描述的Maven依赖关系,我会尝试设置您的项目执行相同的操作。
希望这有助于!
在构建路径我有javax.websocket-api-1.1.jar我也必须把它放在lib文件夹中吗?从我可以告诉这个jar包含ContainerProvider –
我不认为lib文件夹是标准的,但尝试它,看看它是否工作。 –
我已经设置了几个项目,总是得到相同的异常 –
代码抛出什么异常?您错过依赖关系的事实可能仍然是一个问题。 –
对不起,我已更新我的问题,以包括一些更多的信息以及抛出的异常! –