第 7 章 部署应用程序

JBoss EAP 具有一系列应用部署和配置选项,可同时满足管理员和开发人员的需求。对于管理员而言,管理控制台 和管理 CLI 提供了理想的图形和命令行界面来管理生产环境中的应用部署。对于开发人员,应用部署测试选项的范围包括可配置的文件系统 部署扫描程序HTTP API、红帽 CodeReady Studio 和 Maven 等 IDE。

在部署应用时,您可能希望通过将 org.jboss.metadata.parser.validate system 属性设置为 true 来启用对部署描述符的验证。这可以通过以下方法之一完成:

  • 启动服务器时:

    $ EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
  • 使用以下管理 CLI 命令将其添加到服务器配置中:

    /system-property=org.jboss.metadata.parser.validate:add(value=true)

7.1. 使用管理 CLI 部署应用

使用管理 CLI 部署应用可让您可以利用单一命令行界面来创建和运行部署脚本。您可以使用此脚本编写功能来配置特定的应用部署和管理场景。作为单机服务器运行时,您可以管理单个服务器的部署,或者受管域中运行的整个服务器网络。

7.1.1. 使用管理 CLI 将应用部署到单机服务器

部署应用程序

在管理 CLI 中,使用 部署 deploy-file 命令并指定应用部署的路径。

deployment deploy-file /path/to/test-application.war

成功部署不会向管理 CLI 生成任何输出,但服务器日志会显示部署消息。

WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
WFLYUT0021: Registered web context: /test-application
WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

同样,您可以使用以下 部署 命令:

  • 使用 部署 deploy-cli-archive 从 a .cli 存档文件中部署内容。CLI 部署存档是扩展名为 .cliJAR 文件。它包含应当部署的应用存档,以及包含命令和操作的 CLI 脚本文件 deploy .scr 和 undeploy.scr。个脚本文件 deploy.scr 包含部署应用存档和设置环境的命令和操作;另一个脚本文件 undeploy.scr 包含用于取消部署应用存档并清理环境的命令。
  • 使用 部署 deploy-url 来部署 URL 引用的内容。

您还可以使用 deployment enable 命令启用 禁用 的应用。

注意

当使用 -- runtime-name 选项指定 runtime-name 属性时,您必须在名称中包含 .war 扩展,否则 Web 上下文不会由 JBoss EAP 注册。

取消部署应用

在管理 CLI 中,使用 部署 undeploy 命令并指定部署名称。这将从存储库删除部署内容。如需在取消部署时保留部署内容,请参阅 禁用应用程序

deployment undeploy test-application.war

成功卸载不会向管理 CLI 生成任何输出,但服务器日志会显示未部署消息。

WFLYUT0022: Unregistered web context: /test-application
WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 62ms
WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

类似地,您可以使用 部署 undeploy-cli-archive 从 a .cli 存档文件中取消部署内容。您还可以使用通配符(*)取消部署所有部署。

deployment undeploy *
禁用应用程序

禁用部署的应用,但不从存储库中删除部署内容。

deployment disable test-application.war

您可以使用 deployment disable-all 命令禁用所有部署。

deployment disable-all
启用应用程序

启用禁用的部署应用。

deployment enable test-application.war

您可以使用 deployment enable-all 命令启用所有部署。

deployment enable-all
列出部署

在管理 CLI 中,使用 deployment info 命令列出部署信息。

deployment info

输出中将显示每个部署的详细信息,如运行时名称、状态以及是否启用。

NAME                 RUNTIME-NAME         PERSISTENT ENABLED STATUS
helloworld.war       helloworld.war       true       true    OK
test-application.war test-application.war true       true    OK

按名称显示部署信息:

deployment info helloworld.war

您还可以使用 deployment list 命令列出所有 部署。

7.1.2. 使用管理 CLI 在受管域中部署应用

部署应用程序

在管理 CLI 中,使用 部署 deploy-file 命令并指定应用部署的路径。您还必须指定应用应部署到的服务器组。

  • 将应用部署到所有服务器组:

    deployment deploy-file /path/to/test-application.war --all-server-groups
  • 将应用部署到特定的服务器组:

    deployment deploy-file /path/to/test-application.war --server-groups=main-server-group,other-server-group

成功部署不会向管理 CLI 生成任何输出,但服务器日志显示每个受影响的服务器的部署消息。

[Server:server-one] WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
[Server:server-one] WFLYUT0021: Registered web context: /test-application
[Server:server-one] WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

同样,您可以使用以下 部署 命令:

  • 使用 deployment deploy-cli-archive 命令,从 a .cli 存档文件中部署内容。CLI 部署存档是扩展名为 .cliJAR 文件。它包含应当部署的应用存档,以及包含命令和操作的 CLI 脚本文件 deploy .scr 和 undeploy.scr。个脚本文件 deploy.scr 包含部署应用存档和设置环境的命令和操作;另一个脚本文件 undeploy.scr 包含用于取消部署应用存档并清理环境的命令。
  • 使用 deployment deploy-url 命令来部署 URL 引用的内容。

您还可以使用 deployment enable 命令启用 禁用 的应用。

注意

当使用 -- runtime-name 选项指定 runtime-name 属性时,您必须在名称中包含 .war 扩展,否则 Web 上下文不会由 JBoss EAP 注册。

取消部署应用

在管理 CLI 中,使用 部署 undeploy 命令并指定部署名称。您还必须指定应当从中取消部署应用的服务器组。如需从特定服务器组取消部署,请参阅 禁用应用程序

利用该部署,从所有服务器组取消部署应用。

deployment undeploy test-application.war --all-relevant-server-groups

成功卸载不会向管理 CLI 生成任何输出,但服务器日志显示每个受影响的服务器的未部署消息。

[Server:server-one] WFLYUT0022: Unregistered web context: /test-application
[Server:server-one] WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 74ms
[Server:server-one] WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

类似地,您可以使用 部署 undeploy-cli-archive 命令从 a .cli 存档文件中取消部署内容。您还可以使用通配符(*)取消部署所有部署。

deployment undeploy * --all-relevant-server-groups
禁用应用程序

从特定的服务器组禁用部署的应用,并将其内容保留在存储库中,以用于使用该部署的其他服务器组。

deployment disable test-application.war --server-groups=other-server-group

您可以使用 deployment disable-all 命令禁用所有部署。

deployment disable-all --server-groups=other-server-group
启用应用程序

启用禁用的部署应用。

deployment enable test-application.war

您可以使用 deployment enable-all 命令启用所有部署。

deployment enable-all --server-groups=other-server-group
列出部署

在管理 CLI 中,使用 deployment info 命令列出部署信息。您可以按照部署名称或服务器组列出部署信息。

按名称显示部署信息:

deployment info helloworld.war

输出中将列出各个服务器组中的部署及其状态。

NAME               RUNTIME-NAME
helloworld.war     helloworld.war

SERVER-GROUP       STATE
main-server-group  enabled
other-server-group added

显示服务器组的部署信息:

deployment info --server-group=other-server-group

输出将列出指定服务器组的部署及其状态。

NAME                 RUNTIME-NAME         STATE
helloworld.war       helloworld.war       added
test-application.war test-application.war enabled

您还可以使用 deployment list 命令列出域中的所有部署