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 インスタンスから同じアプリを実行し、RestController
viaTOMCAT/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);
}
}