第 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
命令列出域中的所有部署。