簡體   English   中英

如何在Wildfly的standalone.xml配置文件中引用環境變量?

[英]How do I reference environment variables in Wildfly's standalone.xml config file?

我在Mac OS X上使用Wildfly11。在〜/ .profile文件中,我定義了幾個環境變量,可以在控制台上看到它們。

localhost:bin davea$ echo $DB_USERNAME
user1
localhost:bin davea$ echo $DB_PASSWORD
pwd1

在我的$ WILDFLY_HOME / standalone / configuration / standalone.xml文件中,我嘗試引用這些變量...

            <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql://localhost:3306/my_db?serverTimezone=CST&amp;autoReconnect=true&amp;useSSL=false</connection-url>
                <driver>mysql</driver>
                <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                <pool>
                    <min-pool-size>10</min-pool-size>
                    <max-pool-size>100</max-pool-size>
                    <prefill>true</prefill>
                </pool>
                <security>
                    <user-name>${env.DB_USERNAME}</user-name>
                    <password>${env.DB_PASSWORD}</password>
                </security>

但是當我啟動Wildfly實例時,出現此錯誤...

14:35:16,817 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 55) WFLYUT0014: Creating file handler for path '/opt/wildfly-10.0.0.CR2/welcome-content' with options [directory-listing: 'false', follow-symlink: 'false', case-sensitive: 'true', safe-symlink-paths: '[]']
14:35:16,846 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "MySqlDS")
]) - failure description: "WFLYCTL0211: Cannot resolve expression '${env.DB_USERNAME}'"
14:35:16,855 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0012: Started server default-server.

在Wildfly中引用環境變量的正確方法是什么?

以下內容適用於Fedora:

在〜/ .bashrc中添加帶有export DB_USERNAME=user1

另一種選擇是在啟動wildfly時指定屬性文件。

./standalone.sh --properties=mypropertiesfile.properties

但是隨后您必須從standalone.xml中刪除env :$ {DB_USERNAME}

有兩種方法可以在Wildfly配置中引用環境變量,我認為第二個選項可以解決您的問題。

  1. 您可以導出變量並在啟動wildfly服務器時在命令行中將其傳遞。

     $ export LOGPATH=/home/jboss/log $ ./standalone.sh -DlogPath=LOGPATH <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender"> <param name="File" value="${logPath}/server.log"/> . . . . </appender> 
  2. 另一種方法是使用env直接訪問它們 字首。

     <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender"> <param name="File" value="${env.LOGPATH}/server.log"/> . . . . </appender> 

    請注意,您將需要編輯以下文件“ $ WILDFLY_HOME / bin / jboss-cli.xml”,並且需要將以下屬性設置為“ true”(默認為false)

      <!-- whether to resolve system properties specified as command argument or operation parameter values in the CLI VM before sending the operation requests to the controller --> <resolve-parameter-values>true</resolve-parameter-values> 

嘗試將這些屬性添加到standalone.xml文件中。

<subsystem xmlns="urn:jboss:domain:ee:1.1">
     <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
     <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
</subsystem>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM