簡體   English   中英

如何在 jboss eap 6.2 應用程序中在運行時動態讀取 standalone.xml 文件?

[英]how to read standalone.xml file dynamically at runtime in jboss eap 6.2 application?

我需要在運行時讀取 standalone.xml 中定義的所有數據源數據,我需要服務器、用戶、傳遞等(所有數據)手動(通過 jdbc 或其他方式)連接到每個數據源。

例如,如果我有一個文件:standalone.xml 像這樣:(有 2 個數據源 def ..)

1)

<xa-datasource jndi-name="java:jboss/datasources/MyDS1" pool-name="MyDSPool1" enabled="true">
                    <xa-datasource-property name="URL">
                        jdbc:mysql://localhost:3306/mydb
                    </xa-datasource-property>
                    <driver>mysql</driver>
                   <security>
                        <user-name>myuser</user-name>
                        <password>mypass</password>
                    </security>
                </xa-datasource>
                <xa-datasource jndi-name="java:jboss/datasources/MyDS2" pool-name="MyDSPool2" enabled="true">

2)

  <xa-datasource-property name="URL">
                jdbc:mysql://localhost:3306/mydb
            </xa-datasource-property>
            <driver>mysql</driver>
            <security>
                <user-name>root</user-name>
                <password>root</password>
            </security> 
        </xa-datasource>

然后..在我的 EAP 應用程序中,在我的 servlet(我的 EAP 應用程序的入口點)中,我需要讀取 standalone.xml(物理文件),然后獲取每個數據源信息並連接到每個數據庫。 (我不需要在任何 EJB 模塊的 EJB 類中注入數據源,我只需要動態讀取 standalone.xml(在運行時)並通過 jdbc 連接到每個數據源。我需要讀取/循環定義的所有數據源在standalone.xml中並在那一刻通過jdbc連接到每個人(在servlet中)我知道如何通過ejb類中的注釋或jndi使用數據源,但我真的需要首先打開/讀取standalone.xml(使用getResourceAsStream ? 或類似的東西)並連接到其中定義的每個數據源(應用程序可以使用的所有可能的數據源),例如通過 jdbc 連接到每個數據源)並進行一些檢查!

所以基本上我需要的是:在servlet中動態訪問/讀取StandAlone.xml,(所有數據源數據)。 解析它或其他東西,獲取所有數據源定義,使用從 standalone.xml 讀取的數據通過 jdbc 連接到每個數據源,做一些檢查,僅此而已。 那可能嗎? 我正在使用 Jboss EAP 6.2。

謝謝

如果要讀取文件,可以使用系統屬性讀取它,例如:

Properties properties = new Properties();

String file = System.getProperty("jboss.server.config.dir")+"\\standalone.xml"; //change the slash according to your OS
try(FileInputStream fis = new FileInputStream(fileName)) {
  properties.load(fis);
}

暫無
暫無

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

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