我正在开发一个小项目,其中有 Springboot java 应用程序和 Anagular 5 应用程序。我想将它们部署在一个 tomcat 上。在不同的端口上运行每个。
申请流程应该是这样的: 1) 某些外部服务调用带有某些 header 的 Java 应用程序。 Springboot java 应用程序应该读取将它们放在 cookie 中的 header 并将请求转发给 Angular 应用程序。 2)Angular 应用程序从 cookie 中读取 header 并通过 API 调用与另一个应用程序(托管在其他地方)通信。
我尝试过的: 我能够在 tomcat 上部署 Spring boot 应用程序。 对于 Angular 部署,我将 dist 文件夹复制粘贴到 webapp 中。
问题是什么:我希望它们在不同端口上的 tomcat 上同时运行。
外部应用程序 --calls-> java 应用程序(比如在 localhost:8080 上运行)-----从 localhost:8080 重定向到 ----> Angular 应用程序(比如在 localhost:8081 上运行)。
最佳答案
在您将 servlet 容器委托(delegate)给提供的容器的那一刻,所有与“嵌入式”容器有关的 spring 属性都将被忽略。 server.port
就是这种情况属性(property)。
也许这是客户/公司的限制,但以这种方式使用 Spring Boot 项目会让你失去它的大部分好处:提高无服务器应用程序准备水平扩展:(
Spring Boot 让您可以在应用程序中使用静态资源,而不会失去运行嵌入式容器的能力;通过建立可执行的 war 。
Tip:
为此,只需将包装从 .jar
更改为至 .war
.
希望对您有所帮助:)
关于java - 在不同端口的同一个 tomcat 上部署 Angular 5 和 spring boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392869/