从JBoss 6 Web应用程序中的文件加载属性

时间:2010-11-02 16:12:41

标签: jboss properties java-ee

我可以在其中一个 JBoss 6 目录中的某处转储属性文件,然后从类路径中选择它吗?

甚至更好,是否有人知道$JBOSS_HOME/server/default/deploy/jboss-logging.xml等配置文件背后的机制?对此文件的更改似乎会触发事件,以便正在运行的实例可以处理修改(无需退回AS)。

4 个答案:

答案 0 :(得分:2)

可能是在SystemPropertiesService中配置./conf/jboss-service.xml

这允许您就地配置系统属性,或从属性文件加载它们:

<server>
    <mbean code="org.jboss.varia.property.SystemPropertiesService"
           name="jboss.util:type=Service,name=SystemProperties">

        <!-- Load properties from each of the given comma seperated URLs -->
        <attribute name="URLList">
            http://somehost/some-location.properties,
            ./conf/somelocal.properties
        </attribute>

        <!-- Set propertuies using the properties file style. -->
        <attribute name="Properties">
            property1=This is the value of my property
            property2=This is the value of my other property
        </attribute>

    </mbean>
</server>

有关详细信息,请参阅:http://docs.jboss.org/jbossas/admindevel326/html/ch10.html

答案 1 :(得分:1)

他们在JBoss EAP 6(AS 7)中更容易实现这一点。

  1. 将属性文件作为启动参数传递
  2. 这可以在主启动脚本中添加或作为参数传递

    ./standalone.sh  --properties=/Users/john.galt/dev/config/ds/jboss.properties 
    

    如果读取了这些属性,它们将作为第一个语句在服务器日志中呈现。

    3:58:41,633 DEBUG [org.jboss.as.config] (MSC service thread 1-6) Configured system properties:
            DSsettings.password = password
            DSsettings.user-name = admin
            DSsettings.connection-url = jdbc:oracle:fat:@activedb:1521:DEV
            [Standalone] =
            awt.nativeDoubleBuffering = true
    

    注意:由于这些设置记录在服务器日志中,因此请确保生产中的属性文件中没有明文密码

    1. 使用系统属性传递 您可以使用以下语法来使用这些系统属性。 数据源文件中的示例用法

       

      <xa-datasource jndi-name="java:jboss/ds" pool-name="cPool" jta="true" enabled="true" use-ccm="true">
          <xa-datasource-property name="URL">
      
              ${DSsettings.connection_url}
      
          </xa-datasource-property>
      
          <driver>oracle</driver>
          ...
          <security>
      
              <user-name>${DSsettings.user-name}</user-name>
      
              <password>${DSsettings.password}</password>
      
          </security>
          ...
      
      </xa-datasource>
      

答案 2 :(得分:0)

在JBoss 6中使用:./deploy/properties-service.xml

答案 3 :(得分:0)

在JBoss AS7上,properties-service.xml不再存在,以下是解决方案:

http://www.mastertheboss.com/jboss-server/jboss-configuration/how-to-inject-system-properties-into-jboss