はじめに
Java EE アプリケーションサーバー WebSphereの新しいランタイムのインストールからアプリ稼働までを行う。Eclipseを使用することも可能だが,そちらは本家を参考にしてもらい,本稿ではzip展開による導入を行う。
きっと従来のWAS(WebSphere Application Server)を知っている人は驚くに違いない。それはこの後の手順を試せば一目瞭然なのでお楽しみに。
WebSphere Liberty
従来からIBMが提供していたWAS(フルプロファイル)は,WebSphere traditionalと呼ばれ,新しいランタイムはWebSphere Libertyと呼ばれている。
今回は,誰でもWebサイトから取得でき,簡単に,すぐに使えるWebSphere Libertyを使ってみる。というか紹介する。
※便利な使い方しってる人は是非教えてください!
しかも,開発用途であれば無償で使えるという・・・従来のWASを本番で使うケースでも,開発時に重宝する。
WebSphere Libertyの主な特長は8つ
- Java EE 7 完全対応 & 継続的デリバリー対応(四半期ごとに新機能追加)
- 軽量・高速起動
- Unzipで簡単導入
- シンプルなサーバー構成ファイル
- 無償で使える開発ツール (Eclipseプラグイン)
- Jenkinsなどの自動化ツールと簡単連携
- オンプレからIaaS/PaaS,Dockerどこでも動く
- JAX-RSコードからAPI公開で必要になるSwagger自動生成
環境
- Mac : OS X El Capitan 10.11.6
- Java : 1.8.0_65
- Liberty : 16.0.0.3 (このあと導入)
本題: Libertyの導入からアプリ稼働まで
Libertyのダウンロード
-
WASdev.net からLibertyを取得しよう
- 次のURLにアクセス。https://developer.ibm.com/wasdev/
- "Download Latest Stable Release" をクリック
- "Download Liberty (16.0.0.3) with Java EE 7 Web Profile" をクリック
- License Agreementを確認し,"Accept and download"をクリック
- これで "wlp-webProfile7-16.0.0.3.zip" のダウンロードが開始される
WASdevは,WebSphere Libertyのナレッジが詰め込まれたWebサイトで,最新情報が逐一公開されている。Libertyのインストールイメージだけでなく,サンプルコードや,マニュアル,最新情報が得られるサイトだ。
Libertyのインストール
- ダウンロードした "wlp-webProfile7-16.0.0.3.zip" を任意のディレクトリで展開
$ unzip wlp-webProfile7-16.0.0.3.zip
この後作成するサーバーや,アプリなど,ユーザーがコマンドなどで用意するものは "usr" 以下のディレクトリに配置したり,生成される (重要)
新規サーバーの作成
- 以下のコマンドでサーバーを作成する
$ bin/server create server1
どこに生成されたかなーと,usrディレクトリを見てみよう
usr/serversの下に, "server1" というのが出来た模様
サーバーの起動
- 以下のコマンドでサーバーを起動する
$ bin/server run server1
以下のような出力が確認できる
末尾の "server1 は、Smarter Planet に対する準備ができました。"
これを発見できれば,あなたのLibertyは起動している
Smarter Planet・・・ふむ。まぁ良しとしよう
- http://localhost:9080/ にアクセスしてみよう "Welcome to Liberty !!" ちゃんとLibertyが稼働している!
アプリの作成
- 超シンプルなアプリケーションを作成する
- "Hello World!!" と出力するjspの入った.warをつくるだけ
- "Hello World!!" と出力するjspの入った.warをつくるだけ
- Libertyは起動したまま作業してみることにして,ターミナルで新規タブを開く (Macなら⌘+Tとかで)
- 以下を素直にタイピング
$ cd usr/servers/server1/dropins // wlp以下にusrがある
$ mkdir myApp.war
$ cd myApp.war
$ vi index.jsp
<html><body>Hello World!!</body></html>
これでアプリは完成!!
アプリのデプロイ
- 作成したアプリケーションをLibertyサーバーにデプロイする
- というか・・・実はすでにデプロイは終わっている
- ん?どういうこと?
Libertyには,dropinsというディレクトリがあり,その中に.warや.earなどアプリケーションを配置するだけで良いのだ
(今回は,アプリを作成した手順でdropinsにmyApp.warを作ったから配置済)
もし手元に何らかのアプリがあるなら,以下のようにdropinsにコピーしてみるといい
$ cp あなたのアプリ.war wlp/usr/servers/server1/dropins/
アプリの稼働確認 (ブラウザ上)
- 手順の中でつくったmyApp.warの場合は,以下のようにアクセスする
- http://localhost:9080/myApp
- デフォルトでは,アプリ名がコンテキストルートになる
まとめ
早い。とにかく早い。
インストール用のzipさえダウンロードしておけば,1分でサーバーのインストール,構成,アプリのデプロイ,稼働確認までできてしまう。
しかも,アプリサーバーの起動も早い。1秒ほどで起動してくる。
さらに,使用しているディスクサイズやメモリを見ても驚き。
正直言って,Java EE アプリケーションサーバーってこんなに早いの?こんなに簡単だったっけ?ベンダー製品だよね?
これが私の最初の感想でした。同感の人もきっといるでしょう。
Dockerでも使えるし,CIで流行りのJenkinsとか自動化ツールとも相性が良い。
なるほど,クラウドに適しているわけだ。
ちなみに,今回WASdevからダウンロードしたのは,Java EE 7 WebProfileに対応したものだが, Full Platformに対応したもの(Liberty with Java EE 7 Full Platform)もある。
JMSやJava Batch,JAX-WSを使いたい場合は,Full Platform版。
JSP,Servlet,JAX-RSなどを使いたい場合は,Web Profile版を使うと良い。
次回は,クラウド環境かなー。