web-dev-qa-db-ja.com

コマンドラインからのJBoss Application Serverでのアプリのアンデプロイ

Jboss ASにデプロイされている戦争を確認し、それらの一部をデプロイ解除する簡単な方法はありますか?これをコマンドラインから実行したい。

Jmxを使用しようとしましたが、「org.jboss.util.NestedRuntimeException:jmx not bound;」という例外が発生し続けます。アプリケーションサーバーを停止して起動する必要がない方法でそれを実行したいと思います。

18
Joe

JBoss Application Server 7 の3つの方法でこれにアプローチできます。

  • 管理コンソール
  • 管理CLI
  • 展開フォルダ

管理コンソール

管理コンソールはGUIであるため、3つのうち最も視覚的であり、[Deployment]ウィンドウの下にデプロイされたアプリケーションのリストが表示されます。ここにリストされているデプロイ済みアプリケーションを無効にして削除するオプションがあります。このスクリーンショットはAS7.0.2のものであり、一部のウィンドウにはタブが追加されると変更されますが、一般的な機能は同じです。

Imgur

管理CLI

管理コマンドラインインターフェイスは、AS7に新しく追加されたものです。 CLIは多くの低レベルの機能を公開しており、コマンドと操作に慣れると強力なツールになります。ご想像のとおり、helpを実行してコマンドを表示するか、<commandname> --helpを実行して特定のコマンドの詳細を確認できます。 2つの便利なコマンドはdeployundeployです。そこで、それらのヘルプ情報を見てみましょう。 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).

実行中のCLI

引数なしで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などのマーカーファイルが作成され、アプリケーションのデプロイメントのステータスを示します。

30
ddri

JBoss Application Serverでは、deploy dirのwars/earsでプレーンファイル操作を使用してデプロイメントを処理できます。

列挙するにはls、展開解除するにはdelete、展開するにはcopy、再展開するにはtouchだけです。サーバーの再起動は必要ありません。

また、JBoss Application Server 7の最新バージョンの場合は [〜#〜] cli [〜#〜] を使用できます。

3
Vadzim

CLI GUIを試すこともできます。 「デプロイメント」->「デプロイ解除」メニューオプションは、デプロイメントの選択リストを提供します。数回クリックするだけで完了です。

https://community.jboss.org/wiki/AGUIForTheCommandLineInterface を参照してください

2
Stan Silvert

WARとEARを削除した場合、JBOSSサーバーを再起動する必要はありません。アプリケーションはアンデプロイされます。

記事( http://docs.jboss.org/jbossas/docs/Clustering_Guide/4/html/clustering-intro-farm.html )は、それがどのように機能するかを完全に説明しています。

ご不明な点がございましたら、お気軽にお問い合わせください。

私たちはDEV、QA、Prod環境で同じ方法でJbossの開発を行っており、これまでのところ問題はありません。

0
user811591