0

SpringBoot アプリケーションを EAR としてパッケージ化し、ローカルの TomEE 7 インスタンスにデプロイします。

デプロイされると、次のコンテキスト パスでホストされます。TOMEE/my-app-api

webapp フォルダー内の静的な index.html ページは、TOMEE/my-app-api/index.html から正しく提供されます。

RestController単一の GET エンドポイントがマップされた があります/api/country

RestController経由で電話をかけようとするとTOMEE/my-app-api/api/country、404 が返されます。

埋め込まれた Tomcat インスタンスから同じアプリを実行し、RestControllerviaTOMCAT/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