Javaクラスの.classファイルを実行中のアプリケーションサーバーのearファイルに追加するだけで、再起動する必要はありません。この方法でJVMクラスローダーはどのようにロードされますか。私はクラスローダーが起動時にファイルをロードするという印象を受けていました。実行中のアプリケーションサーバーでクラスファイルを変更する場合は、サーバーを再起動する必要があります。実稼働環境でのクラスファイルの追加
3
A
答えて
1
EARは、いくつかの追加情報があるJARファイルです。したがって、J2EEコンテナと同じ方法を使用できます。新しいクラスローダを作成して(試してURLClassLoader
)、新しいクラスをロードするために必要な情報を与えます。
これは新しいクラスで機能します。これらのクラスのすべてのインスタンスに元の型への参照が含まれているため、既存のクラスを置き換えることは別の問題です。これを解決するための一般的なアプローチはありませんが、JRebelの人はそれを行うことができるクラスローダーを書いています(いくつかの制限があります)。
0
ホットコードの置き換えの場合、JRebel 耳に.classを追加するだけで十分ではないので、アーカイブを完全に再構築する必要があります。
1
クラスがまだロードされていない場合は、クラスローダーが利用できるようにするだけです(展開する展開されたフォルダ(WEB-INF/classesなど))にコンパイルするだけです。これは、パッケージ化されたEARからデプロイするときは正常に動作しません。デプロイメント時に通常は展開されるためです。
クラスが既にロードされている場合は、変更を認識するクラスローダーが必要です。あなたのコンテナがあなたのためにそれを行うか、またはあなたが偉大な作品JRebelを見てみることができます。
関連する問題
- 1. Solr Read Timeout(実稼働環境のみ)
- 2. 実稼働環境用のNetbeans?
- 3. 実稼働環境への開発ヘルプ
- 4. SOLR 5実稼働環境にインストール
- 5. テンソルフロー環境で稼働中のトルクジョブ
- 6. 実稼働環境での時計の開始方法は?
- 7. 実稼働環境でNVMをどう扱うのですか?
- 8. Python Autobahnアプリケーションを実稼働環境で実行するには?
- 9. nokogiri:実稼働環境での再配置エラー
- 10. 実稼働環境のSVNからGitへの移行
- 11. Delphi 2010は実稼働環境で使用できますか?
- 12. Rails NoMethodError:未定義メソッド `[] = 'for nil:実稼働環境のNilClass
- 13. Rails 3 - 実稼働環境 - smtp電子メールの問題
- 14. 実稼働環境でnode.jsを使用する
- 15. 実稼働環境で乗客を始めるには?
- 16. 実稼働環境でレールアセットが見つかりません
- 17. 実稼働環境でデータベースフィクスチャを使用するには
- 18. 実稼働環境に開発ツールをインストールする
- 19. socket.io.jsが実稼働環境に見つかりません
- 20. 実稼働環境でRails.application.assetsと同等のものは何ですか?
- 21. 開発環境でのAlembicデータベースの移行 - 実稼働環境への適用方法
- 22. 実稼働環境にバンドラを追加するにはどうすればいいですか?
- 23. 実稼働環境でRails 3.1の資産バンドルを無効にしますか?
- 24. サードパーティ製の宝石をカスタマイズし、実稼働環境で使用する
- 25. Rails - 実稼働環境でのみコードを表示するには?
- 26. Laravelのデフォルトコマンドを拡張するか、実稼働環境でブロックしますか?
- 27. 実稼働環境でレールをローカルで起動できない - Rails 5
- 28. Rails :: Engineのルートが実稼働環境にロードされていない
- 29. asp.net core 1.0実稼働環境用のSQL Server接続文字列?
- 30. realmは実稼働環境で十分安定していますか?