无需手动编辑standalone.xml即可配置JBoss 7

时间:2012-08-28 17:52:51

标签: jboss7.x

在没有手动编辑standalone.xml(或domain.xml)的情况下配置JBoss 7的适当选项有哪些。

我们有一个相当复杂的配置(JavaMail,许多数据源等),编辑XML不是一个好选择,因为注释在重写时会丢失,而且通常会使部署更改变得非常困难。 / p>

我看到的一个选项是命令行界面,至少你可以编写那些东西的脚本,但它似乎会改变它而不是创建它。还有其他好的选择吗?

2 个答案:

答案 0 :(得分:3)

对于批量配置更改,CLI脚本可能是您最好的选择。

另一种选择就是创建自己的程序来完成它。您可以使用native Java API,另请参阅detyped API以获取模型参考。这样您就可以选择在添加或更改之前检查资源和/或资源值。

final ModelNode op = new ModelNode();
op.get(ClientConstants.OP).set("read-resource");
op.get(ClientConstants.OP_ADDR).set("/subsystem=logging/console-handler=CONSOLE");
final ModelControllerClient client = ModelControllerClient.Factory.create("localhost", 9999);
final ModelNode result = client.execute(op);
if (result.get(ClientConstants.OUTCOME).asString().equals(ClientConstants.SUCCESS)) {
    // The operation was successful
} else {
    // Unsuccessful get the failure description
    final String msg;
    if (result.hasDefined(ClientConstants.FAILURE_DESCRIPTION)) {
        if (result.hasDefined(ClientConstants.OP)) {
            msg = String.format("Operation '%s' at address '%s' failed: %s", result.get(ClientConstants.OP), result.get(ClientConstants.OP_ADDR), result.get(ClientConstants.FAILURE_DESCRIPTION));
        } else {
            msg = String.format("Operation failed: %s", result.get(ClientConstants.FAILURE_DESCRIPTION));
        }
    } else {
        msg = String.format("An unexpected response was found. Result: %s", result);
    }
}

答案 1 :(得分:0)

为什么不使用网络管理控制台? standalone.xml中包含的大多数属性都可以使用UI进行配置。