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。
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 〜