我正在尝试在 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();
有关如何解决此问题的任何建议都将非常有帮助。