私はこれを約1週間苦労しています。私はSOで見たことが何も私のために働いていません。 Google App EngineにデプロイしようとしているSpring BootにREST APIが組み込まれています。ローカルで実行しても問題ありません。GAEエミュレータで実行するとうまく動作します。しかし、一度私がmvn appengine:deploy
を使用して展開すると、ビルドに成功しますが、エンドポイントを試してみると、私は502しか得られません。ログがどこにあるか分からないので、これは本当に私のお尻を蹴っています。Google App EngineでのSpring Boot REST 502
私のpom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.admin</groupId>
<artifactId>admin-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- Exclude this for deployment only -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- other project dependencies -->
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
<!-- end other project specific dependencies -->
<!-- Dependencies provided during deployment -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- End dependencies for deployment -->
<!-- Dependencies for local -->
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-tomcat</artifactId> -->
<!-- <scope>provided</scope> -->
<!-- </dependency> -->
<!-- End dependencies for local -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<project>project-id-from-GAE-here</project
</configuration>
</plugin>
</plugins>
</build>
</project>
私のアプリケーションクラスは、簡単な注釈付き@SpringBootApplication
クラスです。私は@RestController
と簡単な@RequestMapping
メソッドの注釈を持つ2つのコントローラを持っています。 RESTコントローラの1つは、/_ah/health
エンドポイントの場合、200を返します.1つのポストは、ヘルスチェックエンドポイントの不足によってトリガされたということです。
私は私の価値注射のための簡単なapplication.ymlを持っていると私は、この上の完全な損失で午前src/main/appengine
runtime: java
env: flexible
threadsafe: true
manual_scaling:
instances: 1
handlers:
- url: /.*
script: this field is required, but ignored
runtime_config:
jdk: openjdk8
に置かれapp.yaml
ファイルを作成しました。うまくいけば、私は最初にGAEを展開しました。 (私はそれにドッカーを読み込む際に壊すのWindows 10マシンで午前ので、私もまだドッカーを使用しておりません。)
UPDATE 私はMavenプラグインの下に私のプロジェクトIDを置くことを忘れていたの通知をしました。私がそれをしたらapp.yamlが見つからないというエラーが出ます。私は柔軟な環境を使用しているので、appengine-web.xmlは必要なく、app.yamlではなくapp.ymlというファイル名を誤っていました。私はこれで私の質問を更新し、私はまだ成功した展開の後に502を取得しています。
私は春のセキュリティを使用したときに私は同じ502を持っていました。私はapp.yamlのリソースをより良いマシンに指定しました。それが解決する。 – Evan