Spring boot jar无法启动嵌入式Tomcat

时间:2016-02-23 05:31:31

标签: spring-boot executable-jar

我使用eclipse IDE创建了Spring rest服务。当我使用Debug配置运行时,它可以在eclipse中正常工作,但是当我将其导出为可执行JAR并使用以下命令运行时

java -jar cs.jar

它给我以下错误:

    org.springframework.context.ApplicationContextException: Unable to start embedde
d container; nested exception is org.springframework.boot.context.embedded.Embed
dedServletContainerException: Unable to start embedded Tomcat
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationConte
xt.onRefresh(EmbeddedWebApplicationContext.java:124)
        at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:474)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationConte
xt.refresh(EmbeddedWebApplicationContext.java:109)

为什么它不能作为罐子工作?

1 个答案:

答案 0 :(得分:1)

你需要检查你的类路径中是否包含了servlet-api jar,如果是,则删除它。

如果servlet-api在classpath中,它包含在WEB-INF / lib中,然后抛出错误,因为servlet容器已经有了servlet api jar。

如果退出,或者如果此依赖项由任何其他模块添加,则从maven或gradle中删除servlet-api依赖项,然后排除servlet api依赖性,如下所示

<dependency>
    <groupId><groupId></groupId>
    <artifactId><some dependency></artifactId>
    <version><version></version>
    <exclusions>
        <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>