前回、エクリプスで作ったWebアプリをGCEにデプロイするとこまで出来た。
今回はアプリに修正が入った場合どうするばいいのかを行う。

エクリプスで修正

エクリプスに行ってNowTimeアプリを変更しよう。現在は時刻を表示するのみだがその後にHello!という文字列を表示するようにする。ソースコードは以下

package controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Main")
public class Main extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out=response.getWriter();
		String date=new java.util.Date().toString();
		response.setContentType("text/plain;charset=utf8");
		out.print(date);
		out.print(System.lineSeparator());
		out.print("Hello!");
	}
}

確認

エクリプスで実行し確認する。

OK!

warファイル作成

修正が済んだのでwarファイルを作成する。

保存場所を聞かれるので、前回と同じくデスクトップに作成したNowTimeフォルダの中でいいだろう。上書きのときはOverwrite existing fileにチェックを入れる

確認

ターミナルに行って確認を行う。この際GCEにログイン状態になっている場合はログアウトしておくこと。

$ cd ~/desktop/NowTime
$ ls -la

現在時刻でファイルが更新されているのがわかる。GCEにSCP(Secure Copy)しよう。いつものようにIPアドレスとユーザー名のところは自分の情報をいれること。

$ scp NowTime.war mjpurin@00.000.00.00:/home/mjpurin

GCEにログイン&確認

GCEにログインして確認を行う。

$ ssh mjpurin@00.000.00.00
$ ls -la
無事コピーされている。

rootになってwebappsに配置

rootになってwebappsに配置しよう。まずはrootになる。suとだけ入力し、パスワードを入れる。

$ su

rootになったことを確認し、以下のコマンドを入力

# mv NowTime.war /opt/apache-tomcat-9.0.29/webapps

overwriteしてよいか?と聞かれるのでyを入力する。

確認

webappsフォルダを確認してみよう。

# ls -la /opt/apache-tomcat-9.0.29/webapps

ファイルが更新され、それと同時にNowTimeフォルダも更新されたことがわかる。実はもうこれで終わりだ。Webブラウザから確認してみよう。
http://IPアドレス/NowTime/Main
と入力し実行する。

OK!!
warファイルを配置し直すだけですべて解決してしまった。
このように既存のコンテンツを更新するのはとても簡単に行える。

次回は、jspファイルや画像なども入っているWebアプリを作ってGCEに配置してみる。お楽しみに!