アプリケーションがアプリケーションサーバー上でアクティブなときにクラスを変更したいのですが。JBoss5とJBoss7を使用しています。
- 実行時にクラスを変更できますか?
- それ以外の場合は、アンデプロイして再デプロイしますか?
- JBossで何を設定する必要がありますか?
- どのアプリケーションサーバーがその機能をサポートしていますか?
- この機能を取得するには、カスタムを作成する必要があります
ClassLoader
か?
アプリケーションがアプリケーションサーバー上でアクティブなときにクラスを変更したいのですが。JBoss5とJBoss7を使用しています。
ClassLoader
か?実行時にクラスを変更できますか? 実際には、古いクラスをアンロードして新しいクラスをロードできます。
それ以外の場合は、アンデプロイして再デプロイしますか? 再デプロイする必要なく、動的に実行できます。ただし、現在、JBoss とほとんどのアプリケーション サーバーがホット デプロイをサポートしていることはおそらくご存知でしょう。 US/JBoss_Enterprise_Web_Platform/5/html/Getting_Started_Guide/The_JBoss_Server_A_Quick_Tour-Hot-deployment_of_services_in_JBoss.html ただし、デプロイ方法は「クラスの変更」とは大きく異なることに注意してください。そうです。
JBoss で何を設定する必要がありますか? コードでそれを行う必要があります。また、最新バージョンを置きたい場所から最新の jar ファイルをロードするためのコードを作成する必要があります。ホット デプロイで十分な場合は、上記のリンクで構成内容を確認できます。
その機能をサポートするアプリケーション サーバーはどれですか? カスタム クラスのロードは、任意のアプリケーション サーバーで実行できます。これは Java Standard Edition の機能であり、コード作成の能力のみに依存します。JBoss などの一部のアプリケーション サーバーには、このタスクに役立つ機能が組み込まれています。
この機能を取得するには、カスタム ClassLoader を作成する必要がありますか? 変更時にモジュールを動的にロードするアプリケーションサーバー機能がニーズに十分でない限り、はい、カスタムクラスローダーを実装する必要があります。クラスローダーを使用することで、任意の方法で新しいバージョンのクラスをロードできます。たとえば、Web サイトのデータベースからクラスの新しいバージョンをロードできます。