概要
会社の同期がサーバーサイド開発でもJavaサイコー! Tomcatはまだ存命である! と叫んでるので、対抗心を燃やして、今たぶん一番トレンドなPayaraを使ってみようと鼻息を荒くしていたんです。
んで、CentOS7なサーバーにJDKとPayaraをインストールして、Windows上のIDEAからウハウハリモート開発を行おうとしたわけですが、結構はまったので、手順をまとめてみました。
以下、全てroot権限で行っています。
JDKのインストール
まずはJDKをインストールします。
yum search java | grep 'jdk-'
のようにjdk関連のパッケージを検索すると、色んなのが出てきますが、例えば1.8.0のを入れたければ、
yum install -y java-1.8.0-openjdk-devel.x86_64
のように、-develがついたものを選択して下さい。
これをミスすると後で沼にはまります。
Payara Serverのインストール
本体の設置
どこにインスコするかは自由なんですが、どの解説サイトを見ても/opt以下に設置しているので、私もそのようにしました。
まずは本体を公式サイトからダウンロードするわけです。
https://www.payara.fish/downloads
ここのダウンロードリンクはリダイレクトかまされるので、wgetの際は-Oオプションでファイル名を指定しないと書き込みに失敗すると思います。
cd /opt
wget "<ダウンロードリンク>" -O payara.tar.gz
tar xvfz payara.tar.gz
この記事を書いている時点では、payara41というフォルダができあがりました。
リモート管理画面を有効にする
設置直後に起動しても、リモート管理画面には入れません。
セキュリティ設定を変更します。
cd payara41/glassfish/bin
./asadmin change-admin-password
./asadmin --host localhost --port 4848 enable-secure-admin
途中、管理者のアカウント名を聞かれます。
標準はadminですが、admin_hogehogeとか別の名前にしても良いと思います。
change-admin-passwordの段階でadminのパスワードを入れろと言ってきますが、初期値は空なのでそのままエンターを押して下さい。
そして設定したいパスワードを入力します。再確認入力あり。
Payaraを起動する
やっとこさ起動できます。
./asadmin start-domain
hogehoge.comというドメインに設置したと仮定して話を進めます。
https://hogehoge.com:4848
にアクセスすると、管理画面のログイン画面が開きます。
ここから色々と見れたりいじれたりするのです。
IDEAでプロジェクトを作成する
ローカルにPayaraを設置する
Pythonプロジェクトなんかだと、IDEAがリモートから勝手に補完用のライブラリとか取ってきてくれるのですが、PayaraというかGlassFishなプロジェクトにはそういう仕組みがないみたいなので、大人しくローカルにも設置します。
私はc:\payara41に展開しました。
テンプレートからプロジェクトを作成する
ここがはまりどころなんですが、新規プロジェクトのテンプレートとしてJava Enterprise->Web Applicationとかしたくなっちゃいますが、そこはグッと我慢です。
Mavenを選択しましょう。
Create from archetypeにチェックを入れて、下にずらっと並んでいる中から、maven-archetype-webappとついてるのを選択します。
次の画面でGroupIdとArtifactIdとか聞かれます。
それぞれ基本的に以下の値を入れる事になります。
- GroupId → プロジェクトのルートパッケージ名 ※一意の値を指定します
- ArtifactId → 最終的にwarにする際のファイル名
上記の内容はpom.xmlに格納されます。
後は確認画面が表示され、普段のプロジェクト作成と同じ流れになります。
プロジェクトが作成されて画面が開くと、右下にEnable Auto-Importという選択肢がある通知が出ると思います。
ここをクリックして下さい。
しばらく裏でダウンロードを始めるので、終わるまで待ちましょう。
Run / Debug Configurationを作成する
リモートで実行したいわけなので、実行用のConfigurationを作成します。
メニューからRun->Edit Configurations...を選びましょう。
もちろん中身は空なので、+ボタンから、GlassFish Server->Remoteを選んで追加します。
この項目が出ない場合は、一番下の** items more~のところを選択して、全ての選択肢を出しましょう。
項目は次のように設定します。
Serverタブ
- Name
お好きにどうぞ。Runとかで良いと思います。
- Application Server
右のConfigureボタンを押すとダイアログが出ますので、+ボタンからローカルに設置したGlassFishの場所を指定したものを1つ作って、それを指定しましょう。
- Open Browser
ビルド後に開くURLを指定します。
デフォルトではポート8080でhttp接続できます。httpsの場合は8181となります。
- GlassFish Server Settings
見ればまあ分かりますが、管理画面へのアクセス情報を入れます。
Use SSL Connectionはチェックを入れて下さい。オレオレ証明書でも大丈夫です。
- Remote Connection Settings
Hostにサーバーのホスト名を入力します。
Deploymentタブ
空っぽなので、+ボタンを押して、Artifact...を選んで下さい。
explodedつきとそうでないものが出てきますので、ついてない方を選択して下さい。
右側にUse custom context rootというのが出てきますが、ドメイン以降のURLになります。
http://hogehoge.com:8080/test
用に開発したい場合は、testと入力して下さい。
実行する
とりあえずそのまま実行してみて下さい。
テンプレートに最初から入っているindex.jspが実行されて、Hello World!とか目にタコができるようなサンプルページが表示されます。
実際にPayaraをバリバリ活用するには、他にもやる事はあるわけですが、いっったんここまでです。