Jboss ASにデプロイされている戦争を確認し、それらの一部をデプロイ解除する簡単な方法はありますか?これをコマンドラインから実行したい。
Jmxを使用しようとしましたが、「org.jboss.util.NestedRuntimeException:jmx not bound;」という例外が発生し続けます。アプリケーションサーバーを停止して起動する必要がない方法でそれを実行したいと思います。
JBoss Application Server 7 の3つの方法でこれにアプローチできます。
管理コンソールはGUIであるため、3つのうち最も視覚的であり、[Deployment]ウィンドウの下にデプロイされたアプリケーションのリストが表示されます。ここにリストされているデプロイ済みアプリケーションを無効にして削除するオプションがあります。このスクリーンショットはAS7.0.2のものであり、一部のウィンドウにはタブが追加されると変更されますが、一般的な機能は同じです。
管理コマンドラインインターフェイスは、AS7に新しく追加されたものです。 CLIは多くの低レベルの機能を公開しており、コマンドと操作に慣れると強力なツールになります。ご想像のとおり、help
を実行してコマンドを表示するか、<commandname> --help
を実行して特定のコマンドの詳細を確認できます。 2つの便利なコマンドはdeploy
とundeploy
です。そこで、それらのヘルプ情報を見てみましょう。 Linuxの例を示しますが、必要に応じてOSの種類を挿入できます。
deploy
は次のとおりです。
[standalone@localhost:9999 /] deploy --help
SYNOPSIS
deploy (file_path [--name=deployment_name] [--runtime_name=deployment_runtime_name] [--force] | --name=deployment_name) [--server-groups=group_name (,group_name)* | --all-server-groups]
DESCRIPTION
Deploys the application designated by the file_path or enables an already existing
but disabled in the repository deployment designated by the name argument.
If executed w/o arguments, will list all the existing deployments.
ARGUMENTS
file_path - the path to the application to deploy. Required in case the deployment
doesn't exist in the repository.
The path can be either absolute or relative to the current directory.
--name - the unique name of the deployment. If the file path argument is specified
the name argument is optional with the file name been the default value.
If the file path argument isn't specified then the command is supposed to
enable an already existing but disabled deployment, and in this case the
name argument is required.
--runtime_name - optional, the runtime name for the deployment.
--force - if the deployment with the specified name already exists, by default,
deploy will be aborted and the corresponding message will printed.
Switch --force (or -f) will force the replacement of the existing deployment
with the one specified in the command arguments.
--server-groups - comma separated list of server group names the deploy command should apply to.
Either server-groups or all-server-groups is required in the domain mode.
This argument is not applicable in the standalone mode.
--all-server-groups - indicates that deploy should apply to all the available server groups.
Either server-groups or all-server-groups is required in domain mode.
This argument is not applicable in the standalone mode.
-l - in case none of the required arguments is specified the command will
print all of the existing deployments in the repository. The presence of the -l switch
will make the existing deployments printed one deployment per line, instead of
in columns (the default).
そして、これがundeploy
です。
[standalone@localhost:9999 /] undeploy --help
SYNOPSIS
undeploy name [--server-groups=group_name (,group_name)* | --all-relevant-server-groups] [--keep-content]
DESCRIPTION
Undeploys the deployment with the given name and, depending on the arguments, removes
its content from the repository.
If the deployment name isn't specified, prints the list of all the existing deployments.
ARGUMENTS
name - the name of the deployment to undeploy.
--server-groups - comma separated list of server group names the undeploy command should apply to.
Either server-groups or all-relevant-server-groups is required in the domain mode.
This argument is not applicable in the standalone mode.
--all-relevant-server-groups - indicates that undeploy should apply to all the server groups
in which the deployment is enabled.
Either server-groups or all-relevant-server-groups is required in domain mode.
This argument is not applicable in the standalone mode.
--keep-content - by default undeploy, besides disabling the deployment, also removes its
content from the repository. The presence of --keep-content will only disable
the deployment w/o removing its content from the repository.
This argument can be used in both standalone and domain modes.
-l - in case the deployment name isn't specified, the presence of the -l switch
will make the existing deployments printed one deployment per line, instead of
in columns (the default).
引数なしでdeploy
またはundeploy
コマンドを実行すると、使用可能なすべてのアプリケーションがリストされます。したがって、CLIにログインしてアプリケーションをアンデプロイするワークフローは次のようになります(簡略化)。
EAP_HOMEからbinフォルダーにディレクトリを変更します。
[user@home EAP_HOME]$ cd bin
CLIログオンスクリプトを実行します。
[user@Host bin]$ ./jboss-admin.sh
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
接続するようにAPIに指示します(これは、実行時に./jboss-admin.sh --connect
として渡すこともできます)。
[disconnected /] connect
Connected to standalone controller at localhost:9999
Undeployコマンドを実行して、使用可能なアプリケーションを表示します。
[standalone@localhost:9999 /] undeploy
test.ear
Undeployコマンドを実行して、アプリケーションをアンデプロイします。この場合、test.ear。
[standalone@localhost:9999 /] undeploy test.ear
Successfully undeployed test.ear.
AS7のインスタンスを開発ツールとして実行していて、デプロイメントフォルダーを使用している場合は、アプリケーションを削除するだけで済みます。 test.ear.failed
などのマーカーファイルが作成され、アプリケーションのデプロイメントのステータスを示します。
JBoss Application Serverでは、deploy
dirのwars/earsでプレーンファイル操作を使用してデプロイメントを処理できます。
列挙するにはls
、展開解除するにはdelete
、展開するにはcopy
、再展開するにはtouch
だけです。サーバーの再起動は必要ありません。
また、JBoss Application Server 7の最新バージョンの場合は [〜#〜] cli [〜#〜] を使用できます。
CLI GUIを試すこともできます。 「デプロイメント」->「デプロイ解除」メニューオプションは、デプロイメントの選択リストを提供します。数回クリックするだけで完了です。
https://community.jboss.org/wiki/AGUIForTheCommandLineInterface を参照してください
WARとEARを削除した場合、JBOSSサーバーを再起動する必要はありません。アプリケーションはアンデプロイされます。
記事( http://docs.jboss.org/jbossas/docs/Clustering_Guide/4/html/clustering-intro-farm.html )は、それがどのように機能するかを完全に説明しています。
ご不明な点がございましたら、お気軽にお問い合わせください。
私たちはDEV、QA、Prod環境で同じ方法でJbossの開発を行っており、これまでのところ問題はありません。