Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第 7 章 部署应用程序

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

在部署应用程序时,您可能希望通过将 org.jboss.metadata.parser.validate 系统属性设为 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 命令并指定应用部署的路径。

deploy /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")

该应用已被成功部署。

取消部署应用

从管理 CLI,使用 undeploy 命令并指定部署名称。

  • 取消部署应用,再删除部署内容。

    undeploy test-application.war
  • 取消部署应用,而不从存储库中删除部署内容。

    undeploy test-application.war --keep-content

    这与从管理控制台禁用部署相同。

成功取消部署不会向管理 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")

该应用已成功取消部署。

列出部署

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

deployment-info

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

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

您还可以使用 --name 参数根据名称过滤显示的部署。

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

部署应用程序

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

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

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

    deploy /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")

该应用已成功部署到受管域中的相应服务器组。

取消部署应用

从管理 CLI,使用 undeploy 命令并指定部署名称。您还必须指定应取消部署应用的服务器组。

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

    undeploy test-application.war --all-relevant-server-groups
  • 从特定的服务器组取消部署应用。请注意,需要 --keep-content 参数,因为内容必须保留在具有该部署的其他服务器组的存储库中。

    undeploy test-application.war --server-groups=other-server-group --keep-content

    这与从管理控制台禁用部署相同。

成功取消部署不会向管理 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")

该应用已成功取消部署。

列出部署

从管理 CLI,使用 deployment-info 命令列出部署信息。您可以根据部署名称或服务器组列出部署信息。

按名称显示部署信息:

deployment-info --name=jboss-helloworld.war

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

NAME                 RUNTIME-NAME
jboss-helloworld.war jboss-helloworld.war

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

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

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

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

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

您还可以使用 deploy -l 命令列出域中的所有部署。