3.4. 管理 API


3.4.1. HTTP API

HTTP API 端点是管理客户端的入口点,它依赖于 HTTP 协议与 JBoss EAP 管理层集成。

HTTP API 由 JBoss EAP 管理控制台使用,但也为其他客户端提供集成功能。默认情况下,HTTP API 可通过 http://HOST_NAME:9990/management 进行访问。此 URL 将显示公开给 API 的原始属性和值。

读取资源

虽然您可以使用 HTTP POST 方法读取、写入或执行其他操作,但您可以使用 GET 请求执行一些读取操作。HTTP GET 方法使用以下 URL 格式:

http://HOST_NAME:9990/management/PATH_TO_RESOURCE?operation=OPERATION&PARAMETER=VALUE

务必将所有可替换值替换为适合您的请求的值。以下值是 OPERATION 可替换值的可用选项:

描述

attribute

执行 read-attribute 操作。

operation-description

执行 read-operation-description 操作。

operation-names

执行 read-operation-names 操作。

resource

执行 read-resource 操作。

resource-description

执行 read-resource-description 操作。

快照

执行 list-snapshots 操作。

以下示例 URL 演示了如何使用 HTTP API 执行读取操作。

示例:读取资源的所有属性和值

http://HOST_NAME:9990/management/subsystem/undertow/server/default-server/http-listener/default

这将显示 默认 HTTP 侦听器的所有属性及其值。

注意

默认操作为 read-resource

示例:阅读资源的属性值

http://HOST_NAME:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled

这会读取 ExampleDS 数据源的 enabled 属性的值。

更新资源

您可以使用 HTTP POST 方法更新配置值或使用 HTTP API 执行其他操作。您必须为这些操作提供身份验证。

以下示例演示了如何使用 HTTP API 更新资源。

示例:更新资源的属性值

$ curl --digest http://HOST_NAME:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"write-attribute", "address":["subsystem","datasources","data-source","ExampleDS"], "name":"enabled", "value":"false", "json.pretty":"1"}'

这会将 ExampleDS 数据源的 enabled 属性的值更新为 false

示例:向服务器发出操作

$ curl --digest http://localhost:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"reload"}'

这会重新加载服务器。

如需有关如何使用 HTTP API 将应用部署到 JBoss EAP 的信息,请参阅使用 HTTP API 部署应用程序。

3.4.2. 原生 API

原生 API 端点是管理客户端的入口点,它依赖于原生协议与 JBoss EAP 管理层集成。JBoss EAP 管理 CLI 使用原生 API,但也为其他客户端提供集成功能。

以下 Java 代码演示了如何使用原生 API 从 Java 代码执行管理操作示例。

注意

您必须将 EAP_HOME/bin/client/jboss-cli-client.jar 文件中的所需的 JBoss EAP 库添加到您的类路径。

示例: 使用原生 API 读取资源

// Create the management client
ModelControllerClient client = ModelControllerClient.Factory.create("localhost", 9990);

// Create the operation request
ModelNode op = new ModelNode();

// Set the operation
op.get("operation").set("read-resource");

// Set the address
ModelNode address = op.get("address");
address.add("subsystem", "undertow");
address.add("server", "default-server");
address.add("http-listener", "default");

// Execute the operation and manipulate the result
ModelNode returnVal = client.execute(op);
System.out.println("Outcome: " + returnVal.get("outcome").toString());
System.out.println("Result: " + returnVal.get("result").toString());

// Close the client
client.close();

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.