Windows10にzipでPayaraをインストールする方法


- 環境
    - Windows 10 Pro 64bit バージョン1903
    - GitBash(mintty 3.1.0)

# zipをダウンロードして配置する
`curl`コマンドを使わないで
[The Central Repository Search Engine](https://search.maven.org/artifact/fish.payara.distributions/payara/5.194/zip) > [Downloads] > [zip]からzipファイルをダウンロードでもOK

```bash
# zipファイルをダウンロードして
$ curl -OL https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.2020.7/payara-5.2020.7.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   134  100   134    0     0     61      0  0:00:02  0:00:02 --:--:--    63
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100  138M  100  138M    0     0  12.0M      0  0:00:11  0:00:11 --:--:-- 21.2M

# 解凍して任意の場所に解凍する
$ unzip payara-5.2020.7.zip -d /c/app/
Archive:  payara-5.2020.7.zip
   creating: /c/app/payara5/
   creating: /c/app/payara5/mq/
   creating: /c/app/payara5/mq/lib/
  inflating: /c/app/payara5/mq/lib/imqbroker.jar
# ...省略...
```

# PATHを設定する

```bash
# 場所確認用にバージョンを確認する
$ /c/app/payara5/bin/asadmin version
Version string could not be obtained from Server [localhost:4848].
(Turn debugging on e.g. by setting AS_DEBUG=true in your environment, to see the details.)
Using locally retrieved version string from version class.
Version = Payara Server  5.2020.7 #badassfish (build 2130)
Command version executed successfully.

# .bash_profileにPATHを設定する
$ vi ~/.bash_profile
$ cat ~/.bash_profile | grep -i payara
export PAYARA_HOME="/c/apps/payara5"
export PATH=$PATH:$PAYARA_HOME/bin

# 設定を反映する
$ source ~/.bash_profile

# PATHが設定されたことを確認するために再度バージョンを確認する
$ asadmin version
Version string could not be obtained from Server [localhost:4848].
(Turn debugging on e.g. by setting AS_DEBUG=true in your environment, to see the details.)
Using locally retrieved version string from version class.
Version = Payara Server  5.2020.7 #badassfish (build 2130)
Command version executed successfully.
```

# Payaraを起動する

```bash
$ asadmin start-domain
Attempting to start domain1.... Please look at the server log for more details.....
```

http://localhost:8080/ でPayaraのページが表示されればOK!![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159761/519681ca-08a6-14ab-e3af-b4ea99b1e658.png)


- 失敗事例
    - [Attempting to start domain1.... Please look at the server log for more details.....となった時は大丈夫 - Qiita](https://qiita.com/ponsuke0531/items/68bdfe3cae7780087317)
    - [There is a process already using the admin port - Qiita](https://qiita.com/ponsuke0531/items/f193102f57e46ab95db9)


# 接続設定を行う
必要に合わせて接続先や使用するものに合わせて接続設定を行う

## MySQLを設定する
### MySQLのJDBCドライバをインストールする
参考 : [Payara ServerでMySQL 8.0を使用する &#8211; My Note](https://www.coppermine.jp/note/2019/01/using-mysql8-with-payara/)

1. [MySQL :: Begin Your Download](https://dev.mysql.com/downloads/file/?id=492426)からJDBCドライバのzipファイルをダウンロードする
    - 今回ダウンロードしたのは、mysql-connector-java-8.0.19.zip
1. zipファイルを任意の場所に解凍する
    - 今回は、後でインストールするためのものなのでダウンロードフォルダに置きっぱなし
1. Payaraにjarをインストールする

```bash:Payaraにjarをインストールする
$ asadmin add-library /c/Users/ponsuke/Downloads/mysql-connector-java-8.0.19/mysql-connector-java-8.0.19/mysql-connector-java-8.0.19.jar
Command add-library executed successfully.
```

### 接続設定をする
接続先に合わせて`asadmin add-resources`で接続設定のxmlファイルを取り込んだり、domain.xmlに接続設定を行ったりする。
domain.xmlの場所 : `{インストールディレクトリ}/payara5/glassfish/domains/domain1/config/domain.xml`

### MySQLへの接続を確認する
```bash
# 1. Payaraを再起動する
$ asadmin restart-domain domain1
Successfully restarted the domain
Command restart-domain executed successfully.

# 2. 接続確認を行う
$ asadmin ping-connection-pool {domain.xmlのjdbc-connection-poolに設定したname属性値}
Command ping-connection-pool executed successfully.
```

- 参考
    - [Payara の起動と停止 &mdash; intra-mart Accel Platform セットアップガイド (Payara編) &nbsp; 第4版 2020-04-01 &nbsp; intra-mart Accel Platform](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_payara/texts/payara_install/start_and_stop.html#restartserver)
    - [接続プールと通信する (ping を実行する) (Sun GlassFish Enterprise Server v3 管理ガイド) ](https://docs.oracle.com/cd/E19226-01/821-1299/ggnwn/index.html)


## メモリサイズを設定する

```bash
# JVMオプション削除 : 最大ヒープサイズ
$ asadmin delete-jvm-options -Xmx512m
Deleted 1 option(s)
Command delete-jvm-options executed successfully.

# JVMオプション追加 : 最大ヒープサイズ
$ asadmin create-jvm-options -Xmx1024m
Created 1 option(s)
Command create-jvm-options executed successfully.

# JVMオプション追加 : クラスデータの領域設定
$ asadmin create-jvm-options "-XX\:MaxMetaspaceSize=256m"
Created 1 option(s)
Command create-jvm-options executed successfully.
```

- 失敗事例
    - [is invalid because it does not start with a '-' - Qiita](https://qiita.com/ponsuke0531/items/d61938c4296cd2afb178)

# 有効期限が切れているSSL証明書情報を削除する
有効期限が切れているSSL証明書がある場合、sever.logを見ると`The SSL certificate has expired`というメッセージが出力されているので[有効期限が切れているSSL証明書情報を削除する](https://qiita.com/ponsuke0531/items/207d216ebb973d94c034)。

# EclipseにPayaraを設定する
使用する場合は[EclipseにPayaraを設定する](https://qiita.com/ponsuke0531/items/e2f2f1145cbf5065d142)