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 |
执行 |
operation-description |
执行 |
operation-names |
执行 |
resource |
执行 |
resource-description |
执行 |
快照 |
执行 |
以下示例 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();