最速，3分でできるWebSphereの導入と実行

長い歴史を持つ商用Java EEアプリケーションサーバーのWebSphere Application Server（WAS）。機能の豊富さとうらはらに「重い」「導入が大変」というイメージを持っている方が多いのですが，じつは簡単に使用できるLibertyプロファイルという新しいランタイムが2012年のVersion 8.5から登場しています。

開発者エディションは，登録なども必要なく，誰でも無償で利用できます。ダウンロードしたからといって，とつぜん営業から電話がかかってくることもありませんので(笑)，ぜひ一度おためしください。

# ランタイムのダウンロード

導入に必要なファイルは，WASdevの[Liberty Repository](https://developer.ibm.com/wasdev/downloads/ "IBM WebSphere Liberty Repository")からダウンロードすることができます。

![スクリーンショット](https://qiita-image-store.s3.amazonaws.com/0/60041/2e445115-de4a-af7f-e080-d94daad09b53.png)

画面上部の「Download just the runtime」を選びます。ダウンロードの画面で「Download」ボタンを押し，WAS for DeveloperのライセンスをAcceptすると，Jarファイルがダウンロードできます。2014年12月現在の最新版はwlp-developers-runtime-8.5.5.4.jarです。ファイルのバージョン番号は変わる可能性があります。

このファイルにはJava EE Web Profile相当の機能が含まれています。JAX-WSやJMSなどの機能を追加で利用したい場合は，同じページの「Download Extended」もクリックします。

# ファイルの展開

このダウンロードしたJarファイルを，手元のJavaコマンドで実行するとLibertyプロファイルの導入ができます。現在，製品版として更改されている8.5.5.xは，Java SE 6/7の環境で利用できます（現在Betaが公開されている次期バージョンからはJava SE 8も利用できるようになります）。

```
$ java -jar wlp-developers-runtime-8.5.5.4.jar
```

Enterキーを2回押してライセンスを表示させると，ライセンスの同意画面になります。

```
以下で「同意する」を選択すると、使用許諾契約の契約条件 (該当する場合は、IBM 以外の契約条件を含む) を受諾することになります。
同意しない場合は、「同意しない」を選択してください。


[1] 同意する、または [2] 同意しないを選択:  
```

1を入力して同意します。

```
製品ファイルのディレクトリーを入力するか、ブランクのままにしてデフォルト値を受け入れます。
デフォルトのターゲット・ディレクトリー: /User/takakiyo/TEMP/Liberty

製品ファイルのターゲット・ディレクトリー? 
```

導入ディレクトリを選ぶ画面になります。カレントディレクトリが表示されていますので，このままでよければそのままEnterを押します。別のディレクトリに導入するのならばディレクトリ名を入力します。

```
ファイルを /User/takakiyo/TEMP/Liberty/wlp に抽出しています。
すべての製品ファイルを正常に抽出しました。
```

指定したディレクトリにwlpというディレクトリが作成され，そこにLibertyプロファイルの環境が展開されます。このあと，このディレクトリをWLP_INSTALL_DIRとします。

# サーバーの構成とアプリケーションの導入

WLP_INSTALL_DIR/binディレクトリにLibertyプロファイルの基本的な操作をおこなうserverコマンドがあります（Windows環境ではserver.batです）。最初にこのコマンドを使用してサーバー構成を作成します。アクションとしてcreate使用し，サーバー名を適当に英数字で指定します。ここではmyServerにしてみます。

```
$ ./server create myServer
```

これによりWLP_INSTALL_DIR/usr/servers/myServerディレクトリにサーバー構成が作成されます。Libertyプロファイルの構成ファイルであるserver.xmlは，このディレクトリに作成されます。

```xml:server.xml
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.2</feature>
    </featureManager>

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
    <httpEndpoint id="defaultHttpEndpoint"
                  httpPort="9080"
                  httpsPort="9443" />

</server>
```

Libertyプロファイルは，全ての設定項目にデフォルト値が決まっており，デフォルトから変更するものだけを構成する，という基本設計になっています。そのため，ほとんどデフォルトで利用する場合は，非常に簡潔な構成ファイルだけで利用できます。

Libertyプロファイルのサーバーを起動するのもserverコマンドを使用します。サーバーをフォアグラウンドで起動するにはrunアクションを使用します。この場合はCtrl＋Cでサーバーを停止します。

```
$ ./server run myServer
Java HotSpot(TM) 64-Bit Server VM バージョン 1.7.0_67-b01 (ja_JP) で、myServer (WebSphere Application Server 8.5.5.4/wlp-1.0.7.cl50420141206-1036) を起動しています
[AUDIT   ] CWWKE0001I: サーバー myServer が起動されました。
[AUDIT   ] CWWKZ0058I: アプリケーションの dropins をモニター中です。 
[AUDIT   ] CWWKF0012I: サーバーは次のフィーチャーをインストールしました。[jsp-2.2, servlet-3.0]。
[AUDIT   ] CWWKF0011I: サーバー myServer は、Smarter Planet に対応する準備ができました。
```

サーバーをバックグランドで起動する場合にはstartアクションを使用します。stopアクションでサーバーを停止することができます。

```
$ ./server start myServer
サーバー myServer を始動中です。
サーバー myServer がプロセス ID 61486 で始動しました。
$
```

アプリケーションは，WLP_INSTALL_DIR/usr/servers/myServer/dropinsディレクトリにEARファイルやWARファイルをおくと，構成なしで導入することができます。また，ディレクトリを作成することで直接アプリを置くことができます。

```
$ cd WLP_INSTALL_DIR/usr/servers/myServer/dropins
$ mkdir test.war
```

このdropinsディレクトリは常にモニターされているため，ディレクトリを作成しただけでアプリケーションとして認識されます。サーバーをフォアグランドで実行している場合，即座に画面にアプリが起動されたことが表示されます。

```
[AUDIT   ] CWWKT0016I: Web アプリケーションが使用可能です (default_host): http://localhost:9080/test/
[AUDIT   ] CWWKZ0001I: アプリケーション test が 0.236 秒で開始しました。
```

作成したディレクトリにdate.jspファイルを作成してみます。

```jsp:date.jsp
<%@ page contentType="text/plain; charset=UTF8" %>It is <%= new java.util.Date() %> now.
```

ブラウザで http://localhost:9080/test/date.jsp にアクセスすると，現在時刻が表示されます。

# さらに詳しく知りたい場合は

[Codezineの記事](http://codezine.jp/article/detail/7697 "軽量・高速・安価で、安定性と信頼性も兼ね備えたWebSphere Application Serverの「Liberty Core」を使ってみた ")や[developerWorksの記事](http://www.ibm.com/developerworks/jp/websphere/library/was/liberty_intro/1.html "新卒関西人のWebSphere挑戦記")などを参考にEclipse上の開発環境を構築してみてください。また，[developerWorks上](http://www.ibm.com/developerworks/jp/websphere/category/was/)では，Libertyプロファイルに関する様々な情報が日本語で公開されています。