LoginSignup
0
1

More than 5 years have passed since last update.

Payaraで開発中にアプリを再デプロイしたときにセッションを維持させる

Posted at

たぶん GlassFish も同じ。

普通に再デプロイしたらセッションは破棄されるので、 @SessionScoped なインスタンスも破棄される。
開発中は頻繁に再デプロイするので、毎回破棄されると色々面倒。

Eclispe や NetBeans のプラグイン経由でデプロイしている場合は、この辺は勝手にやってくれてるっぽい。

Payara

4.1.1.163

コマンドラインで再デプロイ

> asadmin redeploy --name <アプリ名> --keepstate=true <デプロイするwarのパス>

--keepstate オプションに true を指定する

ヘルプ(asadmin redeploy --help)によると、利用できる条件がいくつかあるっぽい。

This option is supported only on the default server instance, named server. It is not supported and ignored for any other target.

(訳)
このオプションは、デフォルトの server と名付けられたサーバーインスタンスでのみサポートされます。他のターゲットでは、無視されサポートされません

あくまで開発時用の便利機能的な感じか。

管理コンソールから再デプロイ

  • メニューの [Applications] を選択
  • 再デプロイしたいアプリの [Action] -> [Redeploy] を選択(一番右の方)
  • [Keep State] のチェックを ON にして再デプロイする

payara.jpg

Gradle から再デプロイ

自分は次のようなタスクを定義して、 Gradle 経由で再デプロイしてる。

build.gradle
task deploy(type: Exec, dependsOn: war) {
    def payaraHome = System.env.PAYARA_HOME
    def asadmin = /$payaraHome\bin\asadmin.bat/

    commandLine('cmd', '/C', asadmin, 'redeploy', '--name', war.baseName, '--keepstate=true', war.archivePath)
}

※環境変数 PAYARA_HOME に開発中の Payara のインストールディレクトリを設定している。
※Windows の場合です

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1