0

将 SpringBoot 应用程序打包为 EAR 并部署到本地 TomEE 7 实例。

部署后,托管在上下文路径下TOMEE/my-app-api

从 TOMEE/my-app-api/index.html 正确提供 webapp 文件夹中的静态 index.html 页面

我有一个RestController映射到的单个 GET 端点/api/country

当我尝试拨打RestControllervia时,TOMEE/my-app-api/api/country我得到一个 404。

如果我从嵌入式 Tomcat 实例运行相同的应用程序并调用RestControllervia,TOMCAT/api/country我会得到成功的响应。

为了让 SpringBoot 在这个上下文路径下托管,我需要配置什么额外的东西吗?

EAR Gradle 任务

apply plugin: 'ear'
version = '1.0.0-SNAPSHOT'

ear {
    archiveName = 'git rev-parse --short HEAD'.execute().text.trim() + "-$version" + '-service.ear'
    baseName = 'git rev-parse --short HEAD'.execute().text.trim()
    version= "-$version" + '-service'

    deploymentDescriptor {
        displayName = 'Service API'
        webModule('service-api.war', 'service-api')
    }
}

dependencies{
    deploy project(path: ':service-api', configuration: 'archives')
    deploy project(path: ':service-data', configuration: 'archives')
    deploy project(path: ':service-rules', configuration: 'archives')
}

应用类

@SpringBootApplication
public class ServiceApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ServiceApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(ServiceApplication.class, args);
    }
}
4

0 回答 0