我目前正在 Axis2 上开发一组SOAP Web服务,部署在集群的 WebLogic 10.3.2环境中。
我的webservices使用了一些我想要编辑的用户设置,而无需重新编译和重新生成AAR存档。考虑到这一点,我选择将它们放入在运行时加载和使用的properties
文件中。
不幸的是,我对此有一些疑问:
据我所知,要实现我想要的,唯一的选择是将属性文件放入每个部署的../axis2/WEB-INF/classes
目录中(在每个 WebLogic 实例上) )我目前有我的集群配置,然后加载文件,如下(或等效,尚未验证优化):
InputStreamReader fMainProp = new InputStreamReader(this.getClass().getResourceAsStream("myfile.properties"));
Properties mainProp = new Properties();
mainProp.load(fMainProp);
这不像我想要的那样实用,因为每次我想改变属性文件的某些设置时,我必须编辑每个文件(部署在不同的 WebLogic 上)实例)并且很有可能修改其中一个文件而不修改其他文件。
我想知道的是,是否有任何(更好的)替代方案可以实现我的目标,最大限度地减少通过多个 WebLogic 分发和复制属性文件而产生的潜在配置冲突实例
答案 0 :(得分:0)
您的用例适合使用JMX。
有关使用JMX构建自定义Mbeans以管理应用程序配置的详细信息,请参阅此链接。 http://blogs.oracle.com/WebLogicServer/2009/10/developing_custom_mbeans_to_ma.html
然后您可以选择基于控制台或基于WLST脚本的访问。
答案 1 :(得分:0)
您可以在Weblogic
中设置系统变量以保留绝对属性文件位置。在weblogic安装中,您将找到setDomainEnv.cmd
(Windows)或setDomainEnv.sh
(Linux)。在里面添加(追加)到你需要的系统变量JAVA_OPTIONS
。例如
-DpropLocation=C:/somewhere/The.properties
在您的代码中,您可以通过System.getProperties("propLocation").
获取属性文件位置。您可以通过在它们之间添加空格来添加多个系统变量。