在 Wildfly 8.2 的standalone-full.xml 中设置系统属性

Posted

技术标签:

【中文标题】在 Wildfly 8.2 的standalone-full.xml 中设置系统属性【英文标题】:Set system properties in standalone-full.xml in wildfly 8.2 【发布时间】:2015-08-23 21:23:18 【问题描述】:

我在standalone-full.xml 中添加了system-properties 标签,但它不能在独立模式下工作。但是,如果我在 domain.xml 中添加相同的标签,它适用于域模式。

<?xml version='1.0' encoding='UTF-8'?>

<server xmlns="urn:jboss:domain:2.2">

    <extensions>
    ....
    </extensions>

    <system-properties>
        <property name="java.util.Arrays.useLegacyMergeSort" value="true"/>
    </system-properties>
</server>

根据this article on jBoss General configuration concepts

系统属性值可以在 domain.xml、host.xml 和standalone.xml 中的多个位置设置。

那么standalone-full.xml 呢?

我不想通过命令行设置它,甚至在 java 代码中也不想。

【问题讨论】:

可能与类加载顺序有关...见***.com/a/26829874/453389 请注意,这个问题与 Java 平台本身使用的属性有关! 【参考方案1】:

在独立的情况下,在配置文件中设置它可能为时已晚。您需要将其添加到JAVA_OPTS 环境变量中的standalone.confstandalone.conf.bat。在其他任何尝试使用java.util.Arrays 之前,需要设置这样的全局属性。

【讨论】:

【参考方案2】:

对于 Wildfly 10,它仍然可以正常工作。我能够读取以包含一些属性的standalone-full.xml 开头的实例的属性。

那我猜该手册肯定已经过时了?因为在使用 Wildfly 管理 web 界面时,即使 Wildfly 本身也会在standalone-full.xml 中插入一个新属性:http://localhost:9990 > Configuration > System Properties(Wildfly 会将该属性当然添加到用于启动实例的 xml 配置中) .这对我来说已经足够证明了。

【讨论】:

【参考方案3】:

如果您使用standalone-full.xml 而不是standalone.xml(默认)启动了Wildfly 服务器,那么这应该反映在服务器的启动中:

standalone.sh -b <hostIP> -c standalone-full.xml -Dorg...

那么这将在第一次启动时生效。

如果您更改此配置文件中的某些内容,则需要从 jboss cli 重新加载 Wildfly(配置):

[standalone@localhost:9990 /] :reload 

【讨论】:

以上是关于在 Wildfly 8.2 的standalone-full.xml 中设置系统属性的主要内容,如果未能解决你的问题,请参考以下文章

如何打开 Wildfly 8.2 JMX 端口进行监控?

在WildFly中运行多个standalone模式的实例

寻找在 wildfly 上读取standalone.xml 文件的 ansible 解决方案

启动 Wildfly 时使用 Maven 编辑standalone.xml

在 Wildfly 8.2 中配置日志的正确方法

在wildfly 8.2服务器中启动ContextLoaderListener期间的classNotfoundException