使用命令行更改实时J2EE服务器中的应用程序中的变量,而不执行s / s

时间:2018-01-02 06:13:49

标签: java-ee ejb glassfish-4.1

我在glassfish服务器上部署了一个EJB应用程序。使用命令行,我想在不进行任何停止启动的情况下更改实时服务器中某些静态变量的值。有没有办法做到这一点。

2 个答案:

答案 0 :(得分:1)

您无法直接更改正在运行的应用程序的代码,因此您需要一个界面。一个可能的接口可以是数据库。如果具有静态变量的类从数据库中读取值,那么您可以创建一个小的Java客户端来更新数据库中的值(每个SQL更新语句),这样您就可以按命令行调用客户端并赋予新的命令行上每个参数的值。

答案 1 :(得分:1)

在现有应用程序*中无法执行此操作。

您需要自己设计并实施一种机制。

可能的技术包括:

  • 定期检查属性文件并在其更改时重新加载
  • 定期检查数据库表并重新加载
  • 将值存储在JNDI中,并在每次需要值时查找

*如果您非常绝望,您可以一直在调试模式下运行,并根据需要通过在适当的断点处停止应用程序来更改内存中的值。