我们正在使用使用
上的说明设置的资源环境提供程序在Websphere中定义的自定义属性http://www.ibm.com/developerworks/websphere/library/techarticles/0611_totapally/0611_totapally.html
我们成功地设置了自定义属性并在Java代码(servlet)中读取它们。
自定义属性包括需要在运行时更新的属性。因此,我们正在寻找一种方法来更新Java代码(servlet)中某些自定义属性的值。有什么方法可以实现这个目标吗?
此外,我们注意到需要重新启动服务器才能反映应用程序中的更新值。有没有我们可以在没有服务器重启的情况下传播更改?
答案 0 :(得分:1)
我不推荐这个。您的应用程序需要具有对服务器的管理访问权限,并且在我看来,应用程序修改自己的服务器配置是脆弱的。您最好使用内存中的解决方案(例如,单例POJO或单例EJB)。
如果你真的想这样做:
您需要使用AdminClientFactory获取AdminClient,然后创建ConfigServiceProxy以查找相关配置对象并修改其属性。这些步骤与wsadmin中的步骤非常相似(但更详细)。在我看来,使用ConfigServiceProxy的最佳代码示例是configuring JDBC。
最终,您的资源环境提供程序配置存储在配置文件的config目录中的resources.xml配置文件中。 DataSourceCfgHelper MBean上有一个reload
方法(有点笨拙地放置),您可以使用它来动态重新加载resources.xml文件(在应用程序重新启动之间偶然重新加载resources.xml文件)。 "配置JDBC"上面的链接也有一个调用这个重载方法的例子。