如何在同一台服务器上运行两个 Spring Boot 应用程序?

MrR*_*ene 2 java vaadin spring-boot server

我有两个 Spring Boot 应用程序。我希望它们同时在服务器上的不同端口上运行,现在我正在我的计算机上本地测试它,当我运行两个 jar 并且我正在使用一个应用程序时,另一个将刷新并注销。我不能同时使用这两个应用程序。

这是嵌入式服务器的问题,spring boot还是其他问题?我已经阅读了几篇文章,但我不确定这是为什么或如何以最佳方式解决这个问题。我应该将这两个应用程序打包为 WAR 并使用 Apache Tomcat 运行它们,还是有最新的方法可以使用 spring boot 和 jar 打包来执行此操作?

Jea*_*aud 9

会话基于 cookie,cookie 是根据名称和主机名保存的。例如,如果您正在运行两个 spring boot 或 tomcat 应用程序并尝试连接这两个应用程序:

  • 对于第一个应用程序(在 localhost:8080 中运行),默认情况下使用名称 JSESSIONID 和主机 localhost 创建会话
  • 对于第二个应用程序(在 localhost:8090 中运行),默认情况下使用名称 JSESSIONID 和主机 localhost 创建一个会话,这将使第一个应用程序无效。

你可以:

  • 更改网址(例如 app1:8080 和 app2:8090)。
  • 更改取决于您的架构/服务器的会话 cookie 名称。对于 Spring Boot,您可以这样更改:server.servlet.session.cookie.name = ANOTHERSESSIONID