Wildfly 10 - 以编程方式读取配置参数

Wildfly 10 - read configuration parameter programmatically

我的standalone.xml里有这个:

<subsystem xmlns="urn:jboss:domain:undertow:3.0">
       <server name="default-server">
            <http-listener name="default" max-post-size="10000000" ...

有没有办法以编程方式读取 max-post-size 的值?

是的。首先查看 Management API reference 文档。那会给你一个管理模型的概述。

您可以使用 HTTP API, CLI scripting, or using the native management client 读取属性。下面是使用本机管理客户端的示例。

try (final ModelControllerClient client = ModelControllerClient.Factory.create(InetAddress.getLocalHost(), 9990)) {
    final ModelNode address = Operations.createAddress("subsystem", "undertow", "server", "default-server", "http-listener", "default");
    final ModelNode op = Operations.createReadAttributeOperation(address, "max-post-size");
    final ModelNode result = client.execute(op);
    if (Operations.isSuccessfulOutcome(result)) {
        System.out.println(Operations.readResult(result).asLong());
    } else {
        throw new RuntimeException(Operations.getFailureDescription(result).asString());
    }
}

如果您使用的是 Maven,则只需要依赖 org.wildfly.core:wildfly-controller-client:2.2.0.Final$JBOSS_HOME/bin/client 目录中还有一个 jboss-client.jar,可以放在 class 路径上,该路径将包含所有必需的二进制文件。