java - 在不同端口的同一个 tomcat 上部署 Angular 5 和 spring boot 应用程序

标签 java spring angular tomcat spring-boot

我正在开发一个小项目,其中有 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/

相关文章:

Java:从 jar 加载类和引用的 jar

java - Java 中的对象和数组列表

javascript - Angular 2 - 将选中的单选按钮的值添加到数组中

java - 单击时,会出现 jLabel 的文本,但不会出现图标图像?

java 时间换算

java - Spring框架5.2.8.RELEASE不支持MultiActionController

java - 如何在Spring security 5.0中自定义 token 响应格式

Spring MVC XML 结果分块,缺少 Content-length header

javascript - Angular/Ui-Grid (ng-grid)/angular 未定义

javascript - Angular 自定义空闲计时器