質問: 環境 JavaEE7(Java8) GlassFish4.1(検討中) javaのホットデプロイについて質問です。 24時間365日停止ができないサイトでjavaのホットデプロイをする際に、各APサーバ(GlassFish,Tomcat,Jettyなど)ではホットデプロイはどのように行いますか? 今回GlassFishを利用する予定ですが、ホットデプロイに不向きであればTomcatやJettyなども考慮したいと思っています。 GlassFishではreloadファイルを更新することでホットデプロイできることは確認したのですが、できればclassファイルをアップするだけで反映したいです。 (デプロイ時の希望としては、warやjarをアップするのではなく、classファイル単体でアップして反映させる方法となります。 1日に数回リリースがあるサイトでの運用となります。) どうしてjavaなのか?そもそもスクリプト言語にしたほうが良いという回答ではなく、javaで運用する際の解決策やアドバイスをぜひお願いします。 また、JavaEEでは難しいから別のフレームワークを検討したほうが良いというご意見であれば詳しくお聞きしたいです。 よろしくお願いいたします。
回答: v4.1のリファレンスが見当たらなかったのでv4.0からの引用となりますが、 リファンレンスの"To Reload Changes to Applications or Modules Dynamically"という項に、以下のような記述があります。 > > Dynamic reloading enables you to change the code or deployment descriptors of an > > application or module without needing to perform an explicit redeployment. Instead, > > you can copy the changed class files or descriptors into the deployment directory for > > the application or module. The server checks for changes periodically and > > automatically redeploys the changes if the timestamp of the .reload file in the root > > directory for the application or module has changed. > > > 要するに、`dynamic reloading`を有効に設定しているのであれば、変更したいclassファイルを差し替えて、`.reload`ファイルのタイムスタンプを更新するだけで、再読み込みしてくれるようです。