S-JIS[2024-02-17/2024-03-05] 変更履歴

GlassFish7

GlassFish7はJakarta EE 10準拠。


インストール

GlassFishのインストールは、ダウンロードサイトからアーカイブをダウンロードして展開するだけ。

Jakarta EE PlatformがJEE全部で、Jakarta EE Web Profileはウェブアプリケーション用に機能が絞られているものらしい。
(GlassFish 7.0.12の場合、Web Profileは「asadmin list-commands」が変なエラーになったりするので、Platformの方が良さそう)


asadminコマンド

GlassFishはasadminコマンドで操作する。
GlassFishをインストールしたディレクトリーがglassfish7とすると、コマンドはglassfish7/bin/asadminにある。

asadminのサブコマンド一覧はlist-commandsで表示できる。

> asadmin list-commands

なお、asadmin(Linuxではシェル、Windowsではbatファイル)ではパスが通っているjavaコマンドが使用される。
GlassFish7のasadminはJava11以降でないと動かない。

Java8で実行すると以下のような例外が発生する。

java.lang.UnsupportedClassVersionError: org/glassfish/admin/cli/AsadminMain has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

環境変数AS_JAVAに「Javaがインストールされたディレクトリー」を指定すると、その下のjavaコマンドが使われる。

Windowsの例
> set AS_JAVA=C:\Program Files\Java\jdk-11

なお、デプロイされるウェブアプリケーションには環境変数JAVA_HOMEのJavaが使われるようなので、そちらも正しくセットしておく方が良さそう。(start-domain時に使われる模様)


リモートサーバーに接続できないと以下のようなエラーが出る。
(asadminは、サブコマンドによってはリモートサーバー(管理コンソール)に接続して実行する)

RemoteCLICommand.prepare throws exception. Remote server does not listen for requests on [localhost:4848]. Is the server up?

ポート4848は、デフォルトドメイン(domain1)の管理コンソールのポート番号。

このエラーが出るほとんどの場合は、リモートサーバー(ドメイン)が起動されていない。
ドメインを起動(開始)しておく必要がある。


ドメインの指定

asadminのほとんどのサブコマンドはドメインに対して実行する。
対象ドメインを特に指定しない場合は、デフォルトのドメイン(domain1)に対して実行される。

ドメインを指定するには、(ドメイン名を指定するのではなく)そのドメインの管理コンソールのホスト名とポート番号を指定する。
(ドメインを直接操作するコマンド(start-domain等)では、ドメイン名を指定するが)

> asadmin --host localhost --port 4848 サブコマンド〜

--host省略時はlocalhost、--port省略時は4848になる。
4848は、デフォルトドメイン(domain1)の管理コンソールのデフォルトのポート番号。

--targetでドメイン名を指定できれば良さそうな気がするが、そうはなっていない。
たぶん、他のサーバーからもコマンドを実行できるようにする為に、ドメイン名を指定するのではなく、ホスト名やポート番号を指定するようになっているのだろう。


ドメインの起動・停止

GlassFish(ドメイン)はasadminコマンドで起動・停止する。

> asadmin start-domain
> asadmin stop-domain

GlassFish7インストール直後はドメインはひとつしか存在しないので、そのドメイン(domain1)が対象となる。


ドメインが複数ある場合(create-domainによってドメインが作られている場合)は、ドメイン名を指定する必要がある。

> asadmin start-domain domain1
> asadmin stop-domain domain1

(Eclipseから)リモート接続してデバッグしたい場合は、--debugオプションを付けて起動する。[2024-02-21]

> asadmin start-domain --debug domain1

管理コンソール

ドメインを起動(開始)すると、ウェブブラウザーから管理コンソールにアクセスできる。
デフォルトドメイン(domain1)の場合、URLはhttp://localhost:4848。
初回アクセス時は少し待たされる。

左側のツリーから色々な情報を選択できる。
例えば以下のようなもの。


GlassFishへ戻る / 技術メモへ戻る
メールの送信先:ひしだま