gpt4 book ai didi

java - Web 套接字客户端在 Tomcat 中不工作

转载 作者:行者123 更新时间:2023-11-28 22:53:26 24 4
gpt4 key购买 nike

我正在尝试在 Tomcat 的上下文中运行 Web 套接字客户端。所以场景是,我在 Tomcat 上部署了一个 Websocket 服务器端点,作为 App-1 的一部分。 App-2 也部署在 Tomcat 上(显然在不同的上下文根下),想要发送一条消息。

App-2 中的类工作正常,如果我从主方法中独立运行它。但是,当它在 tomcat 的上下文中运行时,会出现以下错误。 (我使用 Tyrus 1.9 作为 JSR-356 impl)

java.util.ServiceConfigurationError: javax.websocket.ContainerProvider: Provider org.apache.tomcat.websocket.WsContainerProvider not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:66)

上面的异常是在这一行抛出的:WebSocketContainer container = ContainerProvider.getWebSocketContainer();

有关如何解决此问题的任何建议都将非常有帮助。

最佳答案

明白了。问题是,我在导入客户端包时包含了 tyrus 独立客户端。我替换了下面的内容

<dependency>
<groupId>org.glassfish.tyrus.bundles</groupId>
<artifactId>tyrus-standalone-client</artifactId>
<version>1.9</version>
</dependency>

有了这个

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>

它解决了这个问题。

关于java - Web 套接字客户端在 Tomcat 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33495227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com