Axis2 webservice(aar archive)属性文件

时间:2010-03-22 20:54:28

标签: java properties web-services weblogic axis2

我目前正在 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 分发和复制属性文件而产生的潜在配置冲突实例

2 个答案:

答案 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").获取属性文件位置。您可以通过在它们之间添加空格来添加多个系统变量。