Jee / JBoss:在运行时访问应用程序服务器参数

时间:2014-03-03 10:13:52

标签: java-ee jboss

我有一个用于记录目的的拦截器。现在我想给管理员启用/禁用日志记录的选项。我可以使用应用程序服务器参数,但我不知道如何在运行时访问它们。将为该布尔值或生成器创建一个bean,并将其注入我的拦截器。

目前我正在使用JBoss,但我可能会更改为Glassfish。有没有办法覆盖他们每个人?

2 个答案:

答案 0 :(得分:1)

嗯,启用/禁用日志记录通常是您通过日志记录配置(设置日志级别)执行的操作。

虽然你也可以使用JMX并在MBeanServer中注册你的Beans来从JBoss外部调用你喜欢的任何方法(即通过JConsole或任何其他JMX客户端)。但请注意,每个Bean 实例都必须注册,所以说EJB可能有多个。我曾经通过为每个SessionBean使用一个Singleton EJB作为MBean服务/保存参数和来自每个实例的信息来解决这个问题。

答案 1 :(得分:1)

您还可以使用系统属性。您可以通过jboss-cli设置它们,并使用System.getProperty(...)在代码中查询它们。 对于日志记录的特殊情况,每个应用程序服务器都为您的应用程序提供可管理的日志系统。例如,如果应用程序使用slf4j,则可以在运行时使用日志记录子系统中的jboss-cli配置日志级别。