如何使用java代码更新Websphere资源环境提供程序自定义属性的值?

时间:2015-10-21 07:28:19

标签: java-ee servlets websphere jndi

我们正在使用使用

上的说明设置的资源环境提供程序在Websphere中定义的自定义属性

http://www.ibm.com/developerworks/websphere/library/techarticles/0611_totapally/0611_totapally.html

我们成功地设置了自定义属性并在Java代码(servlet)中读取它们。

自定义属性包括需要在运行时更新的属性。因此,我们正在寻找一种方法来更新Java代码(servlet)中某些自定义属性的值。有什么方法可以实现这个目标吗?

此外,我们注意到需要重新启动服务器才能反映应用程序中的更新值。有没有我们可以在没有服务器重启的情况下传播更改?

1 个答案:

答案 0 :(得分:1)

我不推荐这个。您的应用程序需要具有对服务器的管理访问权限,并且在我看来,应用程序修改自己的服务器配置是脆弱的。您最好使用内存中的解决方案(例如,单例POJO或单例EJB)。

如果你真的想这样做:

  1. 您需要使用AdminClientFactory获取AdminClient,然后创建ConfigServiceProxy以查找相关配置对象并修改其属性。这些步骤与wsadmin中的步骤非常相似(但更详细)。在我看来,使用ConfigServiceProxy的最佳代码示例是configuring JDBC

  2. 最终,您的资源环境提供程序配置存储在配置文件的config目录中的resources.xml配置文件中。 DataSourceCfgHelper MBean上有一个reload方法(有点笨拙地放置),您可以使用它来动态重新加载resources.xml文件(在应用程序重新启动之间偶然重新加载resources.xml文件)。 "配置JDBC"上面的链接也有一个调用这个重载方法的例子。