由于 servlet-api,SpringBoot 应用程序无法启动

你好,首先为我的英语感到抱歉。我正在尝试启动我的 springboot 应用程序,但由于 servlet-api 3.1 和旧版本冲突而无法启动,但我不知道哪个依赖项因此而发生冲突,希望有人能帮助我。以下是我的 pom 文件详细信息:


<dependencies>

<dependency>  

<groupId>javax.servlet</groupId>  

<artifactId>javax.servlet-api</artifactId>  

<version>3.1.0</version>  

<scope>provided</scope>

</dependency> 


    <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <scope>runtime</scope>

    </dependency>

    <dependency>

        <groupId>org.apache.derby</groupId>

        <artifactId>derby</artifactId>

        <scope>runtime</scope>

    </dependency>

    <dependency>

        <groupId>org.hsqldb</groupId>

        <artifactId>hsqldb</artifactId>

        <scope>runtime</scope>

    </dependency>

    <dependency>

        <groupId>org.postgresql</groupId>

        <artifactId>postgresql</artifactId>

        <scope>runtime</scope>

    </dependency>

这是我删除的 spring 依赖项,我使用的是 springboot 2.0.4 和 spring 5。


长风秋雁
浏览 318回答 3
3回答

慕哥9229398

我有一个类似的问题(Sprint Boot 1.5 和 Kettle 8),我发现问题/冲突与水壶核心和水壶引擎有关。我在这些依赖项中排除了 slf4j 和 servlet:<!-- Pentaho Kettle --><dependency>&nbsp; &nbsp; <groupId>pentaho-kettle</groupId>&nbsp; &nbsp; <artifactId>kettle-core</artifactId>&nbsp; &nbsp; <version>${pentaho-kettle.version}</version>&nbsp; &nbsp; <exclusions>&nbsp; &nbsp; &nbsp; &nbsp; <exclusion>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>slf4j-api</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; </exclusion>&nbsp; &nbsp; &nbsp; &nbsp; <exclusion>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>slf4j-log4j12</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; </exclusion>&nbsp; &nbsp; </exclusions></dependency><dependency>&nbsp; &nbsp; <groupId>pentaho-kettle</groupId>&nbsp; &nbsp; <artifactId>kettle-engine</artifactId>&nbsp; &nbsp; <version>${pentaho-kettle.version}</version>&nbsp; &nbsp; <exclusions>&nbsp; &nbsp; &nbsp; &nbsp; <exclusion>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <groupId>javax.servlet</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>servlet-api</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; </exclusion>&nbsp; &nbsp; </exclusions></dependency>

白衣染霜花

问题是 mondrian 包含一个旧版本的 servlet-ap (v2.4),它没有 getVirtualServerName() 方法使用以下命令检查与 javax.servlet 的依赖关系:mvn dependency:tree -Dverbose -Dincludes=javax.servletpentaho:mondrian:jar:8.3.0.0-371:compile&nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; +- javax.servlet:servlet-api:jar:2.4:compile&nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; \- javax.servlet:jsp-api:jar:2.0:compile并排除旧版本,如下例所示:<dependency>&nbsp; &nbsp; <groupId>pentaho-kettle</groupId>&nbsp; &nbsp; <artifactId>kettle-engine</artifactId>&nbsp; &nbsp; <version>${pentaho-kettle.version}</version>&nbsp; &nbsp; <exclusions>&nbsp; &nbsp; &nbsp; &nbsp; <exclusion>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <groupId>javax.servlet</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>servlet-api</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; </exclusion>&nbsp; &nbsp; </exclusions></dependency>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java