Ошибка при развертывании сервлета vaadin (с использованием vaadin CDI) в wildfly

Я пытаюсь развернуть войну на основе vaadin CDI в wildfly 11 (изнутри eclipse), но у меня возникает следующая ошибка:

21:14:36,578 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host."/myapp-1.0-SNAPSHOT".UndertowDeploymentInfoService: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host."/myapp-1.0-SNAPSHOT".UndertowDeploymentInfoService: java.lang.ClassNotFoundException: com.vaadin.cdi.internal.VaadinCDIServlet from [Module "deployment.myapp-1.0-SNAPSHOT.war" from Service Module Loader]
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:1096)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:273)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.vaadin.cdi.internal.VaadinCDIServlet from [Module "deployment.myapp-1.0-SNAPSHOT.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:725)
... 6 more

Кажется, есть проблемы с получением класса VaadinCDISServlet. Это мои зависимости в pom.xml

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>8.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-server</artifactId>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-push</artifactId>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiled</artifactId>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-themes</artifactId>
    </dependency>
    <!-- The following 2 are necessary to vaadin CDI -->
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-cdi</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

У меня есть пустой файл beans.xml в WEB-INF. Кто-нибудь знает, что мне не хватает?


person paoloo    schedule 04.04.2018    source источник


Ответы (2)


Ваш API-интерфейс CDI должен находиться в «предоставленной» области, наличие его в области по умолчанию может вызвать странные проблемы.

Я предлагаю загрузить ваш проект с помощью архетипа Viritin CDI, тогда вы все сделаете правильно с самого начала.

person mstahv    schedule 05.04.2018

Вы не забыли удалить VaadinServlet из основного класса пользовательского интерфейса?

person Tatu Lund    schedule 05.04.2018