这个错误通常表示Tomcat中缺少一个必需的类,可能是因为您的项目使用的是较旧版本的 Jakarta EE 规范,而 Tomcat 10 默认使用的是最新的 Jakarta EE 9 规范。要解决这个问题,您需要确保您的项目中包含了jakarta.enterprise.context.spi.Contextual接口的实现类,或者在Tomcat启动时指定使用 Jakarta EE 8 规范。
您可以尝试将以下代码添加到CATALINA_HOME / conf / catalina.properties中,以指定 Jakarta EE 8 规范:
org.apache.tomcat.util.scan.StandardJarScanFilter.jarsToSkip=
javax.annotation,
javax.el,
javax.enterprise,
javax.inject,
javax.jms,
javax.jws,
javax.mail,
javax.management,
javax.persistence,
javax.resource,
javax.security.auth,
javax.security.jacc,
javax.servlet.jsp.jstl,
javax.servlet.websocket,
javax.servlet,
javax.transaction,
javax.validation,
javax.ws.rs,
javax.xml.bind,
javax.xml.bind.annotation,
javax.xml.namespace,
javax.xml.rpc,
javax.xml.soap,
javax.xml.stream,
javax.xml.ws,
org.apache.cxf,
org.apache.tomcat
如果您的项目需要使用 Jakarta EE 9 规范,请确保您的项目中包含实现Jakarta EE 9规范的jar包,并将其添加到 Tomcat 的类路径中。