在Spring Boot中,我无法排除嵌入式Tomcat

3

我已经排除了嵌入式依赖,但它总是从tomcat而不是undertow开始。 这个问题困扰着我很久。希望有人能帮助我,非常感谢。 我尝试了许多方法,但它们都没有起作用。 这是因为IDEA的原因吗? 任何答案都会有所帮助。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-to-slf4j</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--使用undertow服务器-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>



    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
... 

开始记录日志。
2018-08-03 14:18:12.200  INFO 9268 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 443 (https)
2018-08-03 14:18:12.225  INFO 9268 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

你刷新了Maven吗? - GolamMazid Sajib
是的,我已经尝试了很多方法。重新导入依赖项、重启IDE、刷新等等,但这些都没有起作用。 - treeliked
2个回答

3

谢谢大家。我添加了以下代码。现在它可以正常工作。

    @Bean
    public  UndertowServletWebServerFactory
 undertowServletWebServerFactory() {
    UndertowServletWebServerFactory factory = new 
    UndertowServletWebServerFactory();
    factory.addBuilderCustomizers(builder -> 
builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true)                 .setServerOption(UndertowOptions.HTTP2_SETTINGS_ENABLE_PUSH,true));
    return factory;
}

编程声明曾在早期Spring Boot版本中使用。如果您正在使用Spring Boot 2.x,您应该理想地仅将其从依赖列表中排除,它应该可以工作。然而,我遇到了一个问题,没有对其进行编程定义,它就无法正常运行。 - SteeleDev

0
@LqS2... try this one in pom

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>tomcat-embed-el</artifactId>
                <groupId>org.apache.tomcat.embed</groupId>
            </exclusion>
            <exclusion>
                <artifactId>tomcat-embed-core</artifactId>
                <groupId>org.apache.tomcat.embed</groupId>
            </exclusion>
            <exclusion>
                <artifactId>tomcat-embed-websocket</artifactId>
                <groupId>org.apache.tomcat.embed</groupId>
            </exclusion>
        </exclusions>
    </dependency>

请添加更好的解释。请添加更好的解释。 - MRizwan33
@Bugs Bunny 谢谢你。但似乎不起作用。哦,这让我疯了。 - treeliked

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接