找不到CDI BeanManager

Deo*_*ooK 4 java maven wildfly spring-boot

我试图建立一个简单的应用程序以在Wildfly 14上使用SpringBoot 2.1.1和Java 11(因为Eclipse不支持Wildfly 15)。

部署失败,因为Wildfly在项目中找不到CDI BeanManager。我只是尝试遵循简单的(官方)教程,所以我不明白为什么会出现错误。

这是代码:

pom.xml

<properties>
    <start-class>main</start-class>
</properties>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
</parent>

<!-- Add typical dependencies for a web application -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<!-- Package as an executable jar -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

应用程序

package main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

51:15,966 INFO [org.jboss.as.clustering.infinispan](ServerService线程池-72)WFLYCLINF0002:从ejb容器启动了客户端映射缓存12:51:16,075 INFO [io.undertow.servlet](ServerService线程池-85)在类路径12:51:16,153上检测到1个Spring WebApplicationInitializers INFO [javax.enterprise.resource.webcontainer.jsf.config](ServerService线程池-85)为上下文'/ SpringBoot-初始化Mojarra 2.3.5.SP2 0.0.1'12:51:16,761严重[javax.enterprise.resource.webcontainer.jsf.config](ServerService线程池-85)部署期间的严重错误::com.sun.faces.config.ConfigurationException:工厂'javax .faces.lifecycle.ClientWindowFactory'的配置不正确。在com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:

12:51:16,761错误[org.jboss.msc.service.fail](ServerService线程池-85)MSC000001:无法启动服务jboss.deployment.unit。“ SpringBoot-0.0.1.war” .undertow-deployment :服务jboss.deployment.unit中的org.jboss.msc.service.StartException。“ SpringBoot-0.0.1.war” .undertow-deployment:java.lang.RuntimeException:java.lang.RuntimeException:com.sun.faces。 config.ConfigurationException:未正确配置工厂'javax.faces.lifecycle.ClientWindowFactory'。在org.wildfly.extension.undertow.deployment.UndertowDeploymentService $ 1.run(UndertowDeploymentService.java:81)在java.base / java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:515)在Java org.jboss.threads.JBossThread.run(JBossThread.java:485)的.base / java.lang.Thread.run(Thread.java:825)原因:java。lang.RuntimeException:java.lang.RuntimeException:com.sun.faces.config.ConfigurationException:未正确配置工厂'javax.faces.lifecycle.ClientWindowFactory'。在org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)在io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)在org.wildfly.extension.undertow.deployment .UndertowDeploymentService $ 1.run(UndertowDeploymentService.java:78)... 8个其他原因:java.lang.RuntimeException:com.sun.faces.config.ConfigurationException:Factory'javax.faces.lifecycle.ClientWindowFactory'的配置不正确。在com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:315)在io.undertow.servlet.core.ApplicationListeners处。io的io.undertow.servlet.core.DeploymentManagerImpl $ 1.call(DeploymentManagerImpl.java:216)的contextInitialized(ApplicationListeners.java:187)io的io.undertow.servlet.core.DeploymentManagerImpl $ 1.call(DeploymentManagerImpl.java:185)的io .undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1.call(ServletRequestContextThreadSetupAction.java:42)...在io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:250)...更多10位原因:com。 sun.faces.config.ConfigurationException:未正确配置工厂'javax.faces.lifecycle.ClientWindowFactory'。在com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:357)...在com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:237)...

ConfigurationException:未正确配置工厂'javax.faces.lifecycle.ClientWindowFactory'。引起原因:com.sun.faces.config.ConfigurationException:未正确配置工厂'javax.faces.lifecycle.ClientWindowFactory'。引起原因:javax.faces.FacesException:无法找到CDI BeanManager“}} 12:51:16,762 INFO [org.jboss.as.server](ServerService线程池-42)WFLYSRV0010:部署了“ SpringBoot-0.0.1”。 war”(运行时名称:“ SpringBoot-0.0.1.war”)12:51:16,762 INFO [org.jboss.as.controller](控制器引导线程)​​WFLYCTL0183:服务状态报告WFLYCTL0186:无法启动的服务:服务jboss.deployment.unit。“ SpringBoot-0.0.1.war” .undertow-deployment:java.lang.RuntimeException:java.lang.RuntimeException:com.sun.faces.config。

Ass*_*afs 7

正如我们在评论中讨论的那样,解决方案可能就像将pom.xml依赖项添加cdi-api到其中一样简单。它不包含在您指定的依赖项中。

<dependency> 
    <groupId>javax.enterprise</groupId> 
    <artifactId>cdi-api</artifactId> 
    <version>1.2</version> 
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果出现错误,请添加以下依赖项 &lt;dependency&gt; &lt;groupId&gt;org.reactivestreams&lt;/groupId&gt; &lt;artifactId&gt;reactive-streams&lt;/artifactId&gt; &lt;version&gt;1.0.1&lt;/version&gt; &lt;/dependency&gt; (2认同)