Bluemix上の"Liberty for Java"の環境をローカルPCで検証する

# はじめに
　本ページでは、「**Bluemix上の "Liberty for Java" の環境をローカルPCで検証するための環境構築方法**」について記載します。

　「ローカルPCでEclipse等のデバッガを使ってBluemixの環境をテストしたい！」という方や、「検証の時に "cf push"（Bluemixへの環境デプロイ）の度に2、3分ぼーっとしている」という方が本ページを読むと、作業効率が何倍も上がってハッピーになるかもしれません。

## 想定状況
　具体的な作業内容に入る前に、どのような状況の方が本ページを読むとハッピーになれるのか、ということを以下に記載します。以下の状況に該当する方や、近しい状況の方は是非読んでみてください。

- 既にBluemix上で"Liberty for Java"が稼働している
- 上記"Liberty for Java"上でBluemixサービス（例えばdashDBとか）に接続するアプリを作っている
- これらのものをローカルPC（Widows）でサクサクっと検証したいと考えている<FONT color=gray>（がやり方がわからず、"cf push"の度に2、3分全然関係ないことを考える日々が何日も続いている・・・）</FONT>


# 作業内容

　今回のキーとなる作業の概要図は下図みたいな感じです。Bluemix上にある各種設定情報（"server.xml", "runtime-vars.xml", "VCAP_SERVICES"）をローカルPCに作成し、ローカルPC上の"WAS Liberty"からでもBluemix上のサービスに接続できるようにします。
![作業概要図.png](https://qiita-image-store.s3.amazonaws.com/0/145054/62dc6216-1cfe-d25d-768f-5c356089eba4.png)


　作業は大まかに5つあります。以下に具体的な作業内容を記載しますので、手順に沿って環境構築を行ってください。



## 作業①："WAS Liberty" をローカルPCへインストール
　[Wasdev](https://developer.ibm.com/wasdev/) からローカルPCに "WAS Liberty" をインストールします。これがBluemix上の"Liberty for Java"の代わりをしてくれます。

<FONT color=red>※インストールするエディションは"**Full Platform**"が良いと思います。"**Core**"だと利用できるフィーチャーに制限があるので。。。 </FONT> <FONT color=gray>（私は"WAS Liberty with Java EE 7 Full Platform"をインストールしました。最初は"Core"の方を使おうとしてたのですが、それだとEJBが入れられず。。。ここに結構時間を取られました）</FONT>

## 作業②："Liberty for Java" の設定ファイルをローカルPCへコピー
　Bluemix上の "Liberty for Java" の動作設定ファイル "**server.xml**" と "**rutime-vars.xml**" をローカルPCにコピーします。具体的な作業手順は以下のとおりです。

#### 作業2-1：<u>Bluemixのダッシュボード上で、Cloud Foundryアプリケーションの欄にあるランタイム "Liberty for Java" を選択</u>
![pic1.png](https://qiita-image-store.s3.amazonaws.com/0/145054/6e9d8dc6-f26b-9f78-ecd4-8b78bdf8f6b8.png)



#### 作業2-2：<u>「ランタイム」->「ファイル」の順に選択</u>
![pic2.png](https://qiita-image-store.s3.amazonaws.com/0/145054/9d1a1ea2-44a0-59c2-69ff-a408435b06a7.png)


#### 作業2-3：<u>"server.xml" と "runtime-vars.xml" をローカルPCに保存</u>
- ファイルの置いてある場所（ダウンロード元）
    - "server.xml"： app/wlp/usr/servers/defaultServer/server.xml
    - "runtime-vars.xml"： app/wlp/usr/servers/defaultServer/runtime-vars.xml  
![pic3.png](https://qiita-image-store.s3.amazonaws.com/0/145054/361fc1f4-5a64-3975-de6b-835acf3daf8f.png)

- ローカルでの置き場所（ダウンロード先）
    - **wlp/usr/servers/サーバー名** の下（**wlp**は、WAS LibertyをローカルPCにインストールした時のフォルダのデフォルトの名前です）

（Windowsのエクスプローラーで確認すると、下図みたいな感じになると思います）
![pic5.png](https://qiita-image-store.s3.amazonaws.com/0/145054/7aa6028c-6fab-9aed-ae08-bc0174452aa0.png)
（Eclipse上で確認すると、下図みたいな感じ）
![pic13.png](https://qiita-image-store.s3.amazonaws.com/0/145054/c404cbfa-0d4f-1471-95cc-fedff2a0a862.png)






※ちなみに、ダウンロードするファイルを選択し、下図の『ダウンロードボタン』を押すとダウンロードできます。
![pic7.png](https://qiita-image-store.s3.amazonaws.com/0/145054/eedc4442-3791-7826-4814-9edc382e81aa.png)


## 作業③：ローカルPCに環境変数 "VCAP_SERVICES" を設定

　Bluemix上の環境変数である"VCAP_SERVICES"をローカルPCにも設定します。これにより、ローカルPC内でも"VCAP_SERVICES"を読み込めるようにします。具体的な手順は以下のとおりです。




####　作業3-1：『環境変数』を選択し、"VCAP_SERVICES" をコピー

- 下図の『コピーボタン』を押すとコピーできます
- コピーしたら、テキストエディタか何かに貼り付けておきます
![pic8.png](https://qiita-image-store.s3.amazonaws.com/0/145054/47848eea-f13a-5385-b61c-d4e9a171b91e.png)



####　作業3-2：コマンドラインで環境変数を設定
- 環境変数の設定コマンド：**set VCAP_SERVICES=[環境変数]** （左の[環境変数]には、作業3-1でコピーしたものをペースト）
   - <FONT color=gray> ちなみに、コマンドラインにペーストする前に、JSONデータ（VCAP_SERVICES）を1行に成形する必要があります（つまり、改行やスペースをなくすということ）。この方法については、[Eclipseを使ってJSONデータを整形する](http://qiita.com/ken_ue/items/57af40649ee727ef68d1)に記載しています。 </FONT>

![pic9.png](https://qiita-image-store.s3.amazonaws.com/0/145054/b2f3066d-54ae-ee94-de42-401e5fd4b224.png)

<FONT color=red>※GUIで環境変数を設定しようとすると、文字数制限により環境変数が途中で切れてしまう可能性があります。</FONT><FONT color=gray>（コマンドラインだと文字数制限に引っかからない！！ このことを知らず、私はここで時間を使いました。。。） </FONT>



####　（念のため）作業3-3：コマンドラインで設定した環境変数を確認（ペーストした内容が途中で切れていないか確認！）
- コマンド：**echo %VCAP_SERVICES%**

## 作業④：JDBCドライバーを"WAS Liberty"のフォルダ内に配置
　**wlp/usr/servers/server名/lib**の中に、以下2つのファイル<FONT color=gray>※</FONT>を配置します。（DB接続を伴うアプリを動かしたい場合は必要な作業です。）
 
<FONT color=gray>※私の場合は、ローカルPCにDB2が入っており、そこからコピーしたため以下2つのファイルですが、これらに準ずるファイルなら大丈夫だと思います（たぶん）。</FONT>
- **db2jcc_license_cu.jar**
- **db2jcc4.jar**

（Windowsのエクスプローラーで確認すると、下図みないな感じになります）
![pic10.PNG](https://qiita-image-store.s3.amazonaws.com/0/145054/7f3ac194-2a61-b66a-e170-2f0f1177e800.png)

（Eclipse上で確認すると、下図みたいな感じ）
![pic14.png](https://qiita-image-store.s3.amazonaws.com/0/145054/7e75e9e0-e831-e681-dc6b-e4c83e0ed742.png)


## 作業⑤：コマンドラインからEclipseを実行
　最後に、コマンドラインで"**eclipse.exe**"のあるフォルダへ移動し、Eclipseを実行します。後は、Eclipseで新規にLibertyを追加し動作確認。動作確認完了！！（のはず）


<FONT color=red>※ユーザー環境変数として設定した"VCAP_SERVICES"をEclipseで読み込むためには、コマンドラインからの実行が必要になります</FONT><FONT color=gray>（ちなみに私は"システム環境変数"と"ユーザー環境変数"の2種類があるということも知りませんでした。。。ここも苦労しました。。。）</FONT>




# おわりに
　今回は「**Bluemix上の "Liberty for Java" の環境をローカルPCで検証するための環境構築方法**」について記載しました。記載内容に不備不足等ございましたらコメントいただけると幸いです。