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 路径上,该路径将包含所有必需的二进制文件。
我的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 路径上,该路径将包含所有必需的二进制文件。