[注意1] この記事の内容は以下の環境で動作確認を行っています。
C:\payara5\bin>asadmin.bat 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.191 #badassfish (build 94)
Command version executed successfully.
[注意2] 次のURLを参考にしています: https://www.coppermine.jp/note/2019/01/payara5-npn-version-switch/
Java EEのローカル開発環境としてPayara Serverを利用しているのですが、ソフトウェアの導入直後、以下のエラーによりPayara Serverが起動しないということがありました。
エラー: メイン・クラス[1.8.0|1.8.0u120]-Xbootclasspath.p:C:\payara5\glassfish.lib.grizzly-npn-bootstrap-1.6.jarが見つからなかったかロードできませんでした
この問題に対する対処法はいろいろあると思いますが、わたしの場合はdomain.xml
を修正することで問題が解消しました。ディレクトリ${install_directory}/glassfish/domains/${domain_name}
に格納されているdomain.xml
を確認すると、以下のような記述が複数個所見つかると思います。
<!-- Grizzly NPN Jar version -->
<jvm-options>[1.8.0|1.8.0u120]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.6.jar</jvm-options>
<jvm-options>[1.8.0u121|1.8.0u160]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.7.jar</jvm-options>
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
これはJavaのバージョンに合わせてロードするgrizzly-npn-bootstrap-${version}.jar
を変えるという機構のようですが、これがうまく動いていないことがPayara Serverが正常に起動しない原因のようです。自動で切り替える機構がうまく動かないなら、ハードコーディングしてしまいます。
ここでPayara Serverで利用してるJavaのバージョンを確認します。
C:\jdk\jdk1.8.0_202\bin>java -version
openjdk version "1.8.0_202"
OpenJDK Runtime Environment Corretto-8.202.08.2 (build 1.8.0_202-b08)
OpenJDK 64-Bit Server VM Corretto-8.202.08.2 (build 25.202-b08, mixed mode)
Javaのバージョンは1.8.0u202
で、domain.xml
の記述を見る限りだとgrizzly-npn-bootstrap-1.8.1.jar
をロードするのが正解のようです。そこで上記のdomain.xml
の記述をすべて削除するか、コメントアウトして、以下の通り書き換えます。
<jvm-options>-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
するとPayara Serverは正しく起動するようになるはず(´・ω・`)