LoginSignup
0
0

More than 5 years have passed since last update.

GAE/Java8試行(その9:「デプロイ失敗事例(その2)」

Last updated at Posted at 2018-11-06

お題

この間、デプロイに失敗した事例の記事を書いた。
今回、MavenでCloud Endpoints Frameworksのスケルトンプロジェクトを作ってGAEへのデプロイを試みたところ、再びデプロイ失敗したので、その原因と解決法を書く。

GAE試行Index

開発環境

# OS

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="17.10 (Artful Aardvark)"

# Java

$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

# IDE

みんな大好きIntelliJ IDEA

本題

GAEデプロイ失敗

$ mvn appengine:deploy
[INFO] Scanning for projects...
   〜〜〜〜
[INFO] GCLOUD: 
[INFO] GCLOUD: Beginning interaction for module default...
[INFO] GCLOUD: 0% Warning: Google App Engine Java 7 runtime is deprecated.
[INFO] GCLOUD: 0% Warning: See https://cloud.google.com/appengine/docs/deprecations/java7
[INFO] GCLOUD: Unable to stage app: Class file is Java 8 but max supported is Java 7: /work/src/java/github.com/sky0621/java-webapi-for-gae-study/com.example.sky0621.fs/target/com.example.sky0621.fs-1.0-SNAPSHOT/WEB-INF/classes/com/example/sky0621/fs/BookSaver.class
[INFO] GCLOUD: Please see the logs [/tmp/appcfg5667381128099465326.log] for further information.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.862 s
[INFO] Finished at: 2018-11-06T09:17:14+09:00
[INFO] Final Memory: 22M/443M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:appengine-maven-plugin:1.3.1:deploy (default-cli) on project com.example.sky0621.fs: Execution default-cli of goal com.google.cloud.tools:appengine-maven-plugin:1.3.1:deploy failed: Non zero exit: 1 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

原因

とりあえず「ERROR」の行では原因がわからなかったので「mvn -X appengine:deploy」でスタックトレースを確認しようとしたのだけど、ふと、「INFO」の行の「Unable to stage app: Class file is Java 8 but max supported is Java 7」というのが目に止まった。
「Java8で書かれたソースをデプロイしようとしているが、サポートしているのはJava7まで」?
いや、前回、「-Djava8=true」付きでMavenプロジェクトビルドしたんだけど・・・。

一応、「appengine-web.xml」の中を確認してみる。

$ pwd
/work/src/java/github.com/sky0621/java-webapi-for-gae-study/com.example.sky0621.fs
$
$ tree
| 〜〜〜
├── src
    ├── main
        └── webapp
            └── WEB-INF
                ├── appengine-web.xml
$ cat src/main/webapp/WEB-INF/appengine-web.xml 
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <threadsafe>true</threadsafe>

    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

あ、「<runtime>java8</runtime>」が入ってない・・・。
なんでだろう・・・。
たぶん、これが原因だな。

解決

修正。

$ cat src/main/webapp/WEB-INF/appengine-web.xml 
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <threadsafe>true</threadsafe>
    <runtime>java8</runtime>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

そして、デプロイ。

$ mvn appengine:deploy
[INFO] Scanning for projects...
[INFO] 
  〜〜〜〜
[INFO] GCLOUD:   $ gcloud app browse
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.725 s
[INFO] Finished at: 2018-11-06T09:32:09+09:00
[INFO] Final Memory: 20M/391M
[INFO] ------------------------------------------------------------------------

成功。
う〜ん、なんでJava8ランタイムが付かなかったんだろう・・・。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0