2015年4月28日火曜日

(3)Spring Boot で Web アプリケーションを開発:ホームサーバーで実行

今回は、前回作成した Spring Boot アプリケーションを jvm が動作するマシンで簡単に実行できるか確認します。我が家のホームサーバー(ASUSTOR AS-202TE)では Tomcat7 と MySQL が動いているので、WAR ファイルでデプロイする方が簡単ですが、JAR ファイルとして実行するのも極めて簡単です。

ポートの変更
JAR を作成する前に、ホームサーバーの Tomcat とぶつからないように、アプリのポート(デフォルトでは 8080)を 9000 に変更します。実行時にコマンドパラメータを使って変更することもできますが、このデモでは app.properteis で設定します。
/src/main/resources/app.properties に次の行を追加します:
server.port: 9000

JARファイルの作成
Eclipse のパッケージエクスプローラビューで SpBootDemo プロジェクトを選択して、次の方法で作成します:

  • 方法1:
    • コンテキストメニューから Run As -> Maven build... を選択。
    • 表示された起動設定ダイアログの Goals フィールドに "clean package" を入力して Run ボタンをクリック。
  • 方法2:
    • コンテキストメニューから Run As -> Maven clean を選択。
    • コンテキストメニューから Run As -> Maven install を選択。

プロジェクトの taget フォルダに SpBootDemo-0.0.1.jar が作成されます。
このファイルをASUSTORサーバーの適当なディレクトリにコピーします。

サーバーのデータベースの作成
OSX のターミナルから ssh でサーバーにログインします:
ターミナル$ ssh -l admin 192.168.179.8

このアプリは spbootdb スキーマにユーザー/パスワード demo/pass でアクセスします。データベースを使用しないアプリでは、次の作業は不要です。
root ユーザーでログインして spbootdb スキーマ、 demo ユーザーを作成します:
ssh> mysql -u root -p

mysql> CREATE DATABASE spbootdb DEFAULT CHARACTER SET utf8;
mysql> CREATE USER 'demo'@'localhost' IDENTIFIED BY 'pass';
mysql> GRANT ALL ON *.* TO 'demo'@'localhost';

アプリケーションの実行
サーバー上でアプリケーションを実行します:
ssh> java -jar /jarをコピーしたディレクトリのパス/SpBootDemo-0.0.1.jar

実行結果の確認
ブラウザで URL に"サーバーアドレス:9000/userList"を入力します。


0 件のコメント: