tomcat报错缺少软件包

一个内部类不知道是TomcatServletWebServerFactory

但是我的pom文件里有相关的依赖

        <dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>


img

img

img

@ada; 你可以帮忙么?

父类有你这个方法么?

img

把这个去掉 provided试试。

<dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>3.1.1</version>
   
        </dependency>

图二报错提示的很明显了,对应类接收的参数类型,并不是你传入的那种,不是你pom中引入的依赖中的类。

  • 这篇博客: Spring Boot如何启动嵌入式Tomcat?中的 ServletWebServerFactory 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 创建Web容器,返回的就是上面提到的WebServer。

    public interface ServletWebServerFactory {
        WebServer getWebServer(ServletContextInitializer... initializers);
    }
    

    ServletContextInitializer入参表示ServletContext的初始化器,用于ServletContext中的一些配置:

    public interface ServletContextInitializer {
        void onStartup(ServletContext servletContext) throws ServletException;
    }
    

    getWebServer会调用ServletContextInitializer#onStartup,即若想在Servlet容器启动时做一些事情,比如注册自己的Servlet,可以实现一个ServletContextInitializer,在Web容器启动时,Spring Boot会把所有实现ServletContextInitializer接口的类收集起来,统一调其onStartup。

  • 以下回答由chatgpt基于相关博客总结生成:

    对于Tomcat报错缺少软件包的问题,可以按照以下步骤解决:

    1. 确保在pom文件中添加了正确的相关依赖。比如,如果你缺少了某个内部类所在的软件包,可以在pom文件中添加该软件包的依赖。例如,如果缺少了com.example中的example-package包,可以在pom文件中添加以下依赖:
    <dependencies>
        ...
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>example-package</artifactId>
            <version>1.0.0</version>
        </dependency>
        ...
    </dependencies>
    
    1. 删除target文件夹下的所有文件,重新编译和运行项目。这可以通过在命令行中切换到项目根目录下,然后执行以下命令来实现:
    mvn clean install
    
    1. 检查IDE(如IntelliJ IDEA)的设置,确保使用正确的JRE路径。可以按照以下步骤进行设置:
    2. 打开File菜单,选择Settings
    3. 在Settings窗口中,找到Build, Execution, Deployment - Maven - Runner
    4. 勾选Delegate IDE build/run actions to Maven
    5. 在JRE选项中选择你安装的JRE的路径
    6. 点击Apply和OK保存更改

    如果以上方法都尝试过了,但问题仍然存在,可能需要进一步检查其他可能的原因并采取相应的解决方法。此时,可以通过提供更多的问题细节和错误日志来获取更准确的帮助。