如何在外部 tomcat 中部署 Spring-boot REST API

Posted

技术标签:

【中文标题】如何在外部 tomcat 中部署 Spring-boot REST API【英文标题】:How to deploy Spring-boot REST API in external tomcat 【发布时间】:2017-11-23 01:31:51 【问题描述】:

我有一个没有任何网页的 Spring-boot gradle 应用程序。这个应用程序有 REST api,当我将它作为 Spring boot 应用程序运行时,它被成功调用。

现在从 gradle 生成战争之后,当我尝试在 apache-tomcat-8.0.35 中部署它时,它正在被部署并且目录结构如下:-

但现在我无法使用 tomcat 端口 8080 访问我的 REST api。我已经检查过 tomcat 是否在http://localhost:8080。在调用 REST Api 时出现以下错误:

HTTP Status 403

谁能帮帮我。

谢谢

【问题讨论】:

这似乎是访问禁止错误。请检查您的 tomcat 配置是否安装了任何过滤器或其他阻止访问的配置。 启用安全性? @PRATHAPS 我刚刚下载了一个新的 tomcat 副本并在其中部署了我的应用程序。 【参考方案1】:

在 build.gradle 中添加依赖:

providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

并添加一个类:

public class ServletInitializer extends SpringBootServletInitializer 

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 
        return application.sources(Application.class);
    

【讨论】:

以上是关于如何在外部 tomcat 中部署 Spring-boot REST API的主要内容,如果未能解决你的问题,请参考以下文章

无法在外部 tomcat 上部署 Spring Boot 应用程序

在外部 tomcat 中定义 Spring Boot 应用程序的上下文路径

Spring Boot REST Controller 部署在外部 tomcat 9 服务器上时返回 404

尝试在外部在tomcat 9上运行带有rest控制器的spring boot war文件

Spring boot 1.4登录外部tomcat

Tomcat 服务器无法“在外部”工作