Файл Cass для org.eclipse.jetty.websocket.jsr356.ClientContainer не найден - PullRequest
0 голосов
/ 08 января 2020

При работе с веб-сокетами, в частности с сервером веб-сокетов, я продолжаю сталкиваться с той же проблемой; кажется, он не может найти jsr356.ClientContainer.

Информация: java: при компиляции модуля 'ModuleXXX' возникли ошибки Информация: javac 11.0.4 использовалась для компиляции java источников Информация: 08/01/2020 10 : 23 - Сборка завершена с 1 ошибкой и 0 предупреждениями за 2 с 15 мс C: \ путь \ к \ проекту \ ProjectXX \ ModuleXXX \ src \ main \ java \ Websockets \ WebsocketServer. java Ошибка: (74, 24 ) java: невозможно получить доступ>> файл класса org.eclipse.jetty.websocket.jsr356.ClientContainer для org.eclipse.jetty.websocket.jsr356.ClientContainer не найден Информация: java: при компиляции модуля 'ChessServer' возникли ошибки

Вот код, о котором идет речь:

 public static void startWebSocketServer() {

        Server webSocketServer = new Server();
        ServerConnector connector = new ServerConnector(webSocketServer);
        connector.setPort(PORT);
        webSocketServer.addConnector(connector);

       try {

)
           ServletContextHandler webSocketContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
           webSocketContext.setContextPath("/");
           webSocketServer.setHandler(webSocketContext);

           WebSocketServerContainerInitializer.configure(webSocketContext, (servletContext, serverContainer) -> {
               serverContainer.addEndpoint(WebsocketsCommunicatorService.class);
           });

            webSocketServer.start();

          webSocketServer.join();
        } catch (Throwable t) {
            t.printStackTrace(System.err);
        }
    }

Трассировка стека "указывает" на использование ServerContainer.

Вот мой Pom:

  <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>

        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>javax-websocket-server-impl</artifactId>
            <version>9.4.25.v20191220</version>
            <exclusions>
                <exclusion>
                    <artifactId>javax.websocket-api</artifactId>
                    <groupId>javax.websocket</groupId>
                </exclusion>
                <exclusion>
                    <groupId>javax.websocket</groupId>
                    <artifactId>javax.websocket-client-api</artifactId>
                </exclusion>

                <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
              <exclusion>
                    <groupId>javax.activation</groupId>
                    <artifactId>activation</artifactId>

              </exclusion>
            </exclusions>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty.websocket/websocket-client -->
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-client</artifactId>
            <version>9.4.25.v20191220</version>
        </dependency>

Впоследствии я добавил client-impl, чтобы посмотреть, решит ли это проблему, но это не так. Насколько я могу судить, проблема в server-impl или websocket-api. jsr356 правильно использует ServerContainer, но в этом файле есть ссылка на ClientContainer, которую он не может найти. Исключением в POM является предотвращение разделения пакетов, где javax.websocket используется javax.websocket.server и javax.websocket.client. Я работаю в java 11.

Как это исправить?

...