LibertyによるWebサービスアプリ開発メモ: (1)環境構築

# はじめに
Webサービス(REST)アプリを開発してLiberty上で動かすまでの流れについて、試したことを備忘録として記載していきます。
最終的にはEclipse, Liberty, JAX-RS, GitHub, Maven, JUnit, ...あたりを使ってRESTアプリの開発、テスト、デプロイの流れを作れるようにすることが目標。
まずはEclipseの環境整備の辺りから。

## 関連記事
[LibertyによるWebサービスアプリ開発メモ: (1)環境構築](https://qiita.com/tomotagwork/items/3a63ac7955d053a4feb4)
[LibertyによるWebサービスアプリ開発メモ: (2)MavenプロジェクトによるJAX-RSアプリ開発](https://qiita.com/tomotagwork/items/80b2030d625b6d329a27)
[LibertyによるWebサービスアプリ開発メモ: (3)JPA経由でのDBアクセス](https://qiita.com/tomotagwork/items/2391a79f4fe36449f2a4)
[LibertyによるWebサービスアプリ開発メモ: (4)ロギング](https://qiita.com/tomotagwork/items/30e07835c009cea53dd7)
[LibertyによるWebサービスアプリ開発メモ: (5)JUnitによる単体テスト](https://qiita.com/tomotagwork/items/e35d4984df285307fd2b)
[LibertyによるWebサービスアプリ開発メモ: (6)Eclipse-GitHub連携](https://qiita.com/tomotagwork/items/63a1c75be844f28a0582)

前提:
Windows 7
Eclipse 4.7 (Oxygen)
Java 8
WebSphere Liberty 17.0.0.x

# Eclipse導入
以下からインストーラーをダウンロード(ここではWin 64bit版)
https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-win64.exe

ダウンロードしたeclipse-inst-win64.exeを実行
Eclipse IDE for Java EE Developersを選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/af74efa9-40c0-628c-809d-8d2bfb93c31f.png)

インストール先のディレクトリを指定してインストール
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/00bb26d3-0bf3-ea40-b410-2aace2520b9c.png)

ライセンスのAcceptやらなんやら、画面の指示に従ってインストールを進めていけばOK。

# Liberty環境の整備
以下の記事の手順を参考に...
参考: [Bluemix Liberty for Javaの開発環境を整える（1/3)](http://qiita.com/asmanabu/items/a95dec97aabddd69acd8#_reference-57c5f842a3f47b4e2a6b)

## Eclipse上にWebSpher Liberty Developer Toolの導入
Eclipseを起動し、Help - Eclipse Marketplaceを選択。
IBM WebSphere Application Server Liberty Developer Tools for Oxygenをインストール
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/b334b8bf-4b39-fd56-2035-5b36e28ce50d.png)

Featureの選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/c43dd791-785f-659a-8908-111d86eeafeb.png)

## Libertyの導入
Serversビューで「Clieck this link to create a new server...」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/642809a2-8cb0-462c-2a09-a4bafa6749db.png)

IBM - WebSphere Application Server Libertyを選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/b9fde636-aabd-0bd9-9f72-3f2b73f415e9.png)

Install from an archive or a repositoryを選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/d30addf8-9e4e-67ff-8d9c-add2f9e49f96.png)

インストール先を指定し、IBM WebSphere Liberty Repositoryから WAS Liberty with Java EE 7 Full Platformを選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/9f37c480-a5f9-0b44-bdf5-1f7955be1977.png)

特に何も指定せずNext
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/ae75a8d7-7df2-08c5-5a32-a06660556b58.png)

ライセンスの確認

サーバー名指定
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/56f090e9-95e9-8768-34db-ba2ce4112666.png)

Finish!

サーバーが作成される。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/93754196-8910-a186-2f2b-031b46dba8ef.png)

## LibertyのログをUTF-8に変更
Libertyのログの文字コードは、WindowsだとデフォルトのSJISが使われます。今回はUTF-8で統一するので、そのための設定変更をします。
WAS Libertyの導入ディレクトリ下に、「usr¥servers¥*server_name*」というディレクトリができているので、そこにjvm.optionsというファイルを作成します。

```xxx:jvm.options
-Dfile.encoding=UTF-8
```

# その他Eclipseの設定
## Eclipse Workspaceの文字コードをUTF-8にする
Window - Preferences - [General]-[Workspace]を選択し、"Text file Encoding"をUTF-8にする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/b795046a-c07e-b517-c509-9c83ef521f34.png)

## JDKの設定
Window - Preferences - [Java]-[Installed JREs]を選択し、1.8が設定されていることを確認。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/17a86e00-191a-ac7a-2aed-83ee39eae108.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/2f771028-3182-5eae-7599-cae7bbe117b3.png)

Window - Preferences - [Java]-[Compiler]を選択し、Compiler compliance levelに1.8が設定されていることを確認。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/292a8fd9-7fc4-809b-c1a0-112bc5c6d92e.png)

## Code StyleのFormatterを指定
複数名での開発を想定して、Code Styleのフォーマッターを特定のものに設定する。
ここでは「Google Style Guides」を使用することにする。

以下からzipをダウンロードして展開。
[Google Style Guides](https://github.com/google/styleguide)

Window - Preferences - [Java]-[Code Style]-[Formatter]を選択
Import -> 「eclipse-java-google-style.xml」をimport
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/2ba768e3-6370-f6c8-a1f9-73d577c02651.png)

Window - Preferences - [Java]-[Editor]-[Save Action]を選択
"Perform the selected actions on save" をチェック =>  "Format source code"をチェック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/356442fa-1a92-01db-c532-7091f50e61fe.png)

# おまけ
Libertyサーバーを作成した直後の状態だと、server.xmlに赤×がついていてちょっと気持ち悪い。
こんな感じ...
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/3d164fcf-8cc1-78c5-dd0c-b2ab3d8cd3cc.png)

Merkersビューのメッセージを右クリック - Quick Fix
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/c4840e82-f6f4-2c9c-9263-2cbad038dd76.png)

Add the required server configuration を選択してFinish
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/05aec978-d54c-21e2-bbbb-5e1cea07625a.png)

setボタン
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/6527a5a5-9b01-d0f0-c1ea-2f3ccf4c929b.png)

Keystore passwordとEncodingを指定
![image.png](https://qiita-image-store.s3.amazonaws.com/0/132331/d024c3f4-90c9-a124-7b30-fcac0b4acda2.png)

これでserver.xml上は以下のような設定が追加されて赤×が消える。
`<keyStore id="defaultKeyStore" password="{xor}Pj4+"/>`