【WebSphere Liberty Hints & Tips】リモートのサーバーとローカルのEclipseを連携する方法


## はじめに
Java EEアプリの開発において、ローカル開発環境でEclipseを使い、ランタイムにWebSphere Liberty（以下Liberty）などを使うといったこともあると思います。すべてローカル環境でアプリ開発を行うこともできますが、リモート環境、AWSやBluemixなどのクラウドにあるLibertyを使いたいケースもあります。例えばBluemix上にある多種多様なサービスとの連携をするにあたって、Bluemix上にデプロイしたLibertyを使って開発するといったケースが考えられます。
その際、Bluemix上のLibertyをローカルのEclipseに同期させ、直接サーバー構成を更新したりアプリをデプロイするための設定を記します。

## BluemixでLibertyをデプロイ
PaaSのLiberty for Javaではなく、今回はWebSphere Application Server for BluemixのLiberty Core版（IaaSに近い、どちらかというとMiddleware as a Serviceとして提供）を使います。
![Kobito.8LJjQb.png](https://qiita-image-store.s3.amazonaws.com/0/129662/baeff190-37e5-481f-48c1-fa6d87dc3986.png "Kobito.8LJjQb.png")

本サービスは無償トライアル期間中は無料で使えますが、Liberty for Javaのように無償枠がないため、トライアル期間が過ぎたら料金が発生するので注意してください。予期せぬ課金請求などが発生しても著者は一切責任を持ちません。価格は以下の図の通りです。

1. WAS for Bluemixをカタログから選択し、Liberty Coreを選択し、作成をクリックします。
![Kobito.HQkcgF.png](https://qiita-image-store.s3.amazonaws.com/0/129662/69173f35-a440-30ec-4e54-e47773c90755.png "Kobito.HQkcgF.png")


2. サイズを選択します。
![Kobito.EstthM.png](https://qiita-image-store.s3.amazonaws.com/0/129662/cb30b24f-4f06-23c6-2dcf-88de917c5512.png "Kobito.EstthM.png")

3. スペックを確認してプロビジョンをクリックします。
![Kobito.okXfKk.png](https://qiita-image-store.s3.amazonaws.com/0/129662/2e8c4853-604b-79ae-b45d-f337216d08a0.png "Kobito.okXfKk.png")

4. デプロイが完了したらコンソールに記載されているユーザーID・PWでsshログインします。
![Kobito.XTSKPQ.png](https://qiita-image-store.s3.amazonaws.com/0/129662/47f23295-1d4a-0a6c-0ebd-2239ae221389.png "Kobito.XTSKPQ.png")

5. リモートアクセスするためにサーバー構成ファイルのserver.xml上に以下を追記します。ファイルの場所は /opt/IBM/WebSphere/Profiles/Liberty/servers/server1 です。

```server.xml
<remoteFileAccess>
	<writeDir>${server.config.dir}</writeDir>
	<writeDir>${server.output.dir}</writeDir>
	<writeDir>${wlp.user.dir}</writeDir>
</remoteFileAccess>

```

## ローカル環境の準備
* EclipseとJDK 8とLibertyがローカルに導入されていることが前提です。
* IBM JavaでもOracle Javaのどちらでも構いません。
* 今回はNeon, Oracle Java 8, Liberty 17.0.0.1を前提としています。
* 導入手順の詳細は[こちら](https://www.ibm.com/developerworks/jp/websphere/library/was/liberty_devenv_install/)をご覧ください。

1. Libertyのインストール。
2. WebSphere Developer Toools Pluginのインストール。
3. Eclipse上でLibertyサーバーの作成。

## リモート接続の構成
1. serverから右クリック New => Server でLibertyサーバーを作成。
![Kobito.eMyynj.png](https://qiita-image-store.s3.amazonaws.com/0/129662/939df5fb-a877-e269-2395-902057311bac.png "Kobito.eMyynj.png")


2. ホストにBluemix上にデプロイしてあるLibertyのIPをサーバー・ホスト名に入力して次へ。
![Kobito.kFo5JG.png](https://qiita-image-store.s3.amazonaws.com/0/129662/b11b6521-ce5a-a5d8-d7f0-fa2bfcfdf374.png "Kobito.kFo5JG.png")


3. ユーザー名（wsadmin）、パスワード（Bluemixコンソール上で確認）、セキュアポート（9443）を入れて、Verifyをクリックすると、Bluemix上のLibertyの構成ファイルがダウンロードされてくるので、中身を確認して次へ。
![Kobito.h4GRY9.png](https://qiita-image-store.s3.amazonaws.com/0/129662/4041046a-d914-c9d2-5f3f-858b0a4469ec.png "Kobito.h4GRY9.png")

4. ローカルからBluemixのLibertyの起動停止ができるようにチェックを入れ、ユーザー名とパスワードを再度入力して次へ。
![Kobito.BWtfNc.png](https://qiita-image-store.s3.amazonaws.com/0/129662/5001fedb-01bd-9949-ca4c-655d04fbf217.png "Kobito.BWtfNc.png")

5. もしこの時点で追加したいアプリがあれば追加して（なければ空のままで）完了。
![Kobito.TJUZkW.png](https://qiita-image-store.s3.amazonaws.com/0/129662/815238d6-a991-94cf-1196-b32443e6ca06.png "Kobito.TJUZkW.png")

6. Libertyサーバーが追加され、リモートと同期して開始状態になっていることがわかります。ここで加えた更新はサーバー上に同期されます。
![Kobito.F29YdU.png](https://qiita-image-store.s3.amazonaws.com/0/129662/e4c79f56-b112-d957-323f-161da8332a6a.png "Kobito.F29YdU.png")


## まとめ
以上でWebSphere Developer Toolsが入ったEclipseから、リモートにあるLibertyサーバーと同期し、サーバー構成の更新、アプリのデプロイを実行できるようにしました。

## 参考資料
* https://www.ibm.com/developerworks/jp/websphere/library/was/liberty_devenv_install/
* https://www.ibm.com/developerworks/jp/websphere/library/was/liberty_intro/1.html
* https://www.slideshare.net/takakiyo/liberty-developmentlab
* http://qiita.com/ken_ue/items/4834fcf805ae1ef9417c
* http://qiita.com/asmanabu/items/a95dec97aabddd69acd8
* https://www.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/t_creating_remote_server.html