Spring boot 在一个端口下使用不同的上下文路径运行多个spring引导应用程序

Spring boot 在一个端口下使用不同的上下文路径运行多个spring引导应用程序,spring-boot,Spring Boot,比如说,我有四个spring boot应用程序A1、A2、A3和A4。它们都分别在“/a1”、““/a2”、“/a3”和“/a4”上下文路径下运行。我想要一个单一的spring启动应用程序,它可以通过一台服务器运行所有这些。所以,我刚刚创建了MainBootApp,它的@SpringBootApplication类有main方法,如下所示: public static void main(String[] args) { new SpringApplicationBuilder(

比如说,我有四个spring boot应用程序A1、A2、A3和A4。它们都分别在“/a1”、““/a2”、“/a3”和“/a4”上下文路径下运行。我想要一个单一的spring启动应用程序,它可以通过一台服务器运行所有这些。所以,我刚刚创建了MainBootApp,它的@SpringBootApplication类有main方法,如下所示:

public static void main(String[] args) {
        new SpringApplicationBuilder(MainBootApp.class)
                .sibling(A1.class, A2.class, A3.class, A4.class).run(args);
}
刚才提到的是,MainBootApp中有所有4个项目的依赖项

我不确定这种方法是否适合我的要求。我发现这更好,因为这为我提供了日志中所有四个应用程序中所有请求映射路径的信息。但有以下例外:

Exception in thread "main" java.lang.IllegalStateException: No parent defined yet (please use the other overloaded parent methods to set one)
    at org.springframework.boot.builder.SpringApplicationBuilder.runAndExtractParent(SpringApplicationBuilder.java:224)
    at org.springframework.boot.builder.SpringApplicationBuilder.sibling(SpringApplicationBuilder.java:247)
    at com.example.MainBootAppApplication.main(MainBootAppApplication.java:16)

请帮助

听起来您真正想要的是一个独立的Tomcat安装,而不是Spring Boot喜欢的、您已经使用过的嵌入式安装。如果您的问题是关于URL和端口布局的,那么在Spring Boot应用程序前面放置一个web服务器(如Apache或nginx)会更好地满足这一要求。