我可以在其中一个 JBoss 6 目录中的某处转储属性文件,然后从类路径中选择它吗?
甚至更好,是否有人知道$JBOSS_HOME/server/default/deploy/jboss-logging.xml
等配置文件背后的机制?对此文件的更改似乎会触发事件,以便正在运行的实例可以处理修改(无需退回AS)。
答案 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)中更容易实现这一点。
这可以在主启动脚本中添加或作为参数传递
./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
注意:由于这些设置记录在服务器日志中,因此请确保生产中的属性文件中没有明文密码
使用系统属性传递 您可以使用以下语法来使用这些系统属性。 数据源文件中的示例用法
<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不再存在,以下是解决方案: