在不同端口的同一个 tomcat 上部署 Angular 5 和 Spring Boot 应用程序
Posted
技术标签:
【中文标题】在不同端口的同一个 tomcat 上部署 Angular 5 和 Spring Boot 应用程序【英文标题】:Deploy Angular 5 and spring boot applications on same tomcat at different ports 【发布时间】:2018-08-29 18:40:40 【问题描述】:我正在开发一个小项目,其中有 Springboot java 应用程序和 Anagular 5 应用程序。我想将它们部署在一个 tomcat 上。在不同的端口上运行每个。
应用流程应该是这样的: 1) 一些外部服务调用带有一些标头的 Java 应用程序。 Springboot java 应用程序应该读取将它们放入 cookie 的标头并将请求转发给 Angular 应用程序。 2)Angular 应用程序从 cookie 中读取标头并通过 API 调用与另一个应用程序(托管在其他地方)进行通信。
我尝试了什么: 我能够在 tomcat 上部署 Spring Boot 应用程序。 对于角度部署,我将 dist 文件夹复制粘贴到 webapp 中。
问题是什么:我希望它们在不同端口的tomcat上一次运行。
外部应用程序 --calls-> java 应用程序(比如在 localhost:8080 上运行)-----从 localhost:8080 重定向到 ----> Angular 应用程序(比如在 localhost:8081 上运行)。
【问题讨论】:
【参考方案1】:当您将 servlet 容器委托给提供的容器时,所有与“嵌入式”容器相关的 spring 属性都将被忽略。这是server.port
属性的情况。
也许这是一个客户/公司的限制,但是以这种方式使用 Spring Boot 项目会让你失去它的大部分好处:提升无服务器应用程序准备好进行水平扩展:(
Spring Boot 保留了让应用程序中的静态资源失去运行嵌入式容器的能力的可能性;通过构建一个可执行的战争。
Tip:
为此,只需将包装从 .jar
更改为 .war
。
希望对你有帮助:)
【讨论】:
感谢您的回复,我同意您的意见,但它的要求。我将其作为一场战争并部署在 tomcat 上并在 localhost/warName 上运行,但是如何在同一个 tomcat 上部署 angular。 这里有两个链接:first 和 second以上是关于在不同端口的同一个 tomcat 上部署 Angular 5 和 Spring Boot 应用程序的主要内容,如果未能解决你的问题,请参考以下文章