Развертывание клиента Websocket в Wildfly 13 - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь развернуть верблюжий маршрут, который использует клиент Webscoket в качестве потребителя в Wildfly 13.

Когда я пытаюсь запустить проект, я получаю следующую ошибку:

Caused by: [java.lang.RuntimeException - Could not find an implementation class.]: java.lang.RuntimeException: Could not find an implementation class.
        at javax.websocket.ContainerProvider.getWebSocketContainerImpl(ContainerProvider.java:89)
        at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:69)

Я использую следующие зависимости:

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

Запустив код на Eclipse, все работает нормально.

Мне нужно выполнить какую-то конкретную настройку для Wildfly или в проекте, чтобы запустить этот код?

Мой Maven сборка:

<build>
  <resources>
    <resource>
      <filtering>true</filtering>
      <directory>src/main/resources</directory>
    </resource>
  </resources>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.7.0</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
    <plugin>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.1.0</version>
      <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <classpathLayoutType>custom</classpathLayoutType>
            <customClasspathLayout>META-INF</customClasspathLayout>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

1 Ответ

1 голос
/ 07 мая 2019

Трудно сказать из вашего описания, что не так с вашей конкретной настройкой, но, как правило, самый простой способ написать интеграцию Camel поверх WildFly - это использовать WildFly Camel: https://wildfly -extras.github.io/ wildfly-camel / # _ getting_started

Веб-сокеты поддерживаются с помощью компонента Undertow.Для простого маршрута, подобного следующему

from("undertow:ws://localhost:8080/my-app")
    .log("Message received from WebSocket Client : ${body}")

, вам потребуется только зависимость компонента undertow (обратите внимание на область действия provided):

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.camel</groupId>
                <artifactId>wildfly-camel-bom</artifactId>
                <version><!-- your WF Camel version --></version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-undertow</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Отказ от ответственности: я один изсопровождающие WildFly Camel

...