Jakarta ee OpenWebBeans在与Tomcat 10一起使用时给出错误java.lang.NoClassDefFoundError

Jakarta ee OpenWebBeans在与Tomcat 10一起使用时给出错误java.lang.NoClassDefFoundError,jakarta-ee,cdi,classnotfoundexception,openwebbeans,tomcat10,Jakarta Ee,Cdi,Classnotfoundexception,Openwebbeans,Tomcat10,我正在尝试将OpenWebBeans与Tomcat10结合使用。我已经遵循了本文中给出的步骤 当我使用焊接时,它工作良好。但是当我使用OpenWebBeans时,我得到了以下错误 SEVERE: Error configuring application listener of class [org.apache.webbeans.servlet.WebBeansConfigurationListener] java.lang.NoClassDefFoundError: javax/servle

我正在尝试将OpenWebBeans与Tomcat10结合使用。我已经遵循了本文中给出的步骤

当我使用焊接时,它工作良好。但是当我使用OpenWebBeans时,我得到了以下错误

SEVERE: Error configuring application listener of class [org.apache.webbeans.servlet.WebBeansConfigurationListener]
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener ... 
我的pom文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>minimal</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
    <project.build.sourceEncoding>
        UTF-8
    </project.build.sourceEncoding>
    <project.reporting.outputEncoding>
        UTF-8
    </project.reporting.outputEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
    <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>2.0.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>jakarta.faces</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet.jsp.jstl</groupId>
        <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-jsf</artifactId>
        <version>2.0.21</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>7.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>5.0.0</version>
    </dependency>
</dependencies>
</project>

4.0.0
com.example
最小的
0.0.1-快照
战争
UTF-8
UTF-8
11
11
假的
雅加达
jakarta.annotation-api
2.0.0
假如
玻璃鱼
雅加达
3.0.0
jakarta.servlet.jsp.jstl
jakarta.servlet.jsp.jstl-api
2.0.0
雅加达企业
jakarta.enterprise.cdi-api
3.0.0
org.apache.openwebbeans
openwebbeans jsf
2.0.21
org.hibernate.validator
休眠验证器
7.0.1.最终版本
jakarta.servlet
jakarta.servlet-api
5.0.0
这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>minimal</display-name>
<servlet>
    <servlet-name>facesServlet</servlet-name>
    <servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<listener>
<listener-class>
org.apache.webbeans.servlet.WebBeansConfigurationListener
</listener-class>
</listener>

最小的
小脸蛋
jakarta.faces.webapp.FacesServlet
1.
小脸蛋
*.xhtml
org.apache.webbeans.servlet.webbeans配置侦听器
这是我的context.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE XML>
<Context>
<Resource name="BeanManager" 
    auth="Container"
    type="jakarta.enterprise.inject.spi.BeanManager"
    factory="org.apache.webbeans.container.ManagerObjectFactory" />
</Context>

我需要使用OpenWebBeans迁移到雅加达名称空间。任何帮助都将不胜感激

我需要使用OpenWebBeans迁移到雅加达名称空间

他们确实有一个人工版本。只需在依赖项中添加
jakarta


org.apache.openwebbeans
openwebbeans jsf
2.0.21
雅加达
然而,它目前只有一个问题:它的四个可传递依赖项
web
el22
impl
spi
不正确地不是人工变量。因此,您需要显式地排除它们,并显式地包含人工变量。所以你不得不以这个怪物图结束:


org.apache.openwebbeans
openwebbeans jsf
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans web
org.apache.openwebbeans
openwebbeans-el22
org.apache.openwebbeans
openwebbeans impl
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans web
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans-el22
org.apache.openwebbeans
openwebbeans impl
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans-el22
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans impl
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans spi
2.0.21
雅加达
我需要使用OpenWebBeans迁移到雅加达名称空间

他们确实有一个人工版本。只需在依赖项中添加
jakarta


org.apache.openwebbeans
openwebbeans jsf
2.0.21
雅加达
然而,它目前只有一个问题:它的四个可传递依赖项
web
el22
impl
spi
不正确地不是人工变量。因此,您需要显式地排除它们,并显式地包含人工变量。所以你不得不以这个怪物图结束:


org.apache.openwebbeans
openwebbeans jsf
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans web
org.apache.openwebbeans
openwebbeans-el22
org.apache.openwebbeans
openwebbeans impl
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans web
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans-el22
org.apache.openwebbeans
openwebbeans impl
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans-el22
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans impl
2.0.21
雅加达
org.apache.openwebbeans
openwebbeans spi
org.apache.openwebbeans
openwebbeans spi
2.0.21
雅加达