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

GlassFish7 デプロイ

GlassFish7のデプロイについて。


デプロイ

ウェブアプリケーションのデプロイは以下のコマンドで行う。(管理コンソールからもデプロイできる)

> asadmin deploy --force=true warファイル

--force=trueを付けないと、既にデプロイ済みの場合に以下のようなエラーになる。

remote failure: Error occurred during deployment: Application with name example is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
Command deploy failed.

デフォルトドメイン(domain1)以外のドメインにデプロイしたい場合は、対象ドメインの管理コンソールのホスト名とポート番号を指定する。

> asadmin --host localhost --port 4848 deploy 〜

デプロイのオプション

オプション 説明
--force=true trueにすると、既にデプロイ済みの場合に上書きする。
--contextroot コンテキストパス ウェブアプリケーションのURLのベースパス。
省略すると、warファイルのファイル名部分になる。
(example.warの場合、exampleになる。http://localhost/example/でアクセスする)
--name コンポーネント名 デプロイするコンポーネントの名前。
省略すると、warファイルのファイル名部分になる。
(example.warの場合、exampleになる)
--nameで異なる名前を指定すると、同じwarファイルを複数デプロイできる。

デプロイエラー

デプロイに成功してもウェブブラウザ―からアクセスしてエラーになる場合、サーバーログにエラーメッセージが出ていることがある。

サーバーログはドメインのlogsの下にある。
デフォルトドメイン(domain1)の場合、glassfish7/glassfish/domains/domain1/logs/server.log。


Javaのバージョンエラー

Unable to load class com.example.glassfish.server.RestServerApp, reason: java.lang.UnsupportedClassVersionError: Class com.example.glassfish.server.RestServerApp has unsupported major or minor version numbers, which are greater than those found in the Java Runtime Environment version 11

例えばwarファイルがJDK21で作られていてGlassFishがJava11で起動していると、上記のようなエラーになる。
warファイルと同じバージョンのJavaでGlassFishを起動する必要がある。

asadmin start-domainを実行する前に、環境変数JAVA_HOMEにwarファイルと同じバージョンのJavaを指定しておく。

Windowsの例
> set JAVA_HOME=C:\Program Files\Java\jdk-21
> asadmin strt-domain
> asadmin deploy 〜

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