3

アプリケーションがアプリケーションサーバー上でアクティブなときにクラスを変更したいのですが。JBoss5とJBoss7を使用しています。

  • 実行時にクラスを変更できますか?
  • それ以外の場合は、アンデプロイして再デプロイしますか?
  • JBossで何を設定する必要がありますか?
  • どのアプリケーションサーバーがその機能をサポートしていますか?
  • この機能を取得するには、カスタムを作成する必要がありますClassLoaderか?
4

1 に答える 1

0
  • 実行時にクラスを変更できますか? 実際には、古いクラスをアンロードして新しいクラスをロードできます。

  • それ以外の場合は、アンデプロイして再デプロイしますか? 再デプロイする必要なく、動的に実行できます。ただし、現在、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 サイトのデータベースからクラスの新しいバージョンをロードできます。

于 2012-11-29T05:16:11.363 に答える