繁体   English   中英

有没有一种方法可以在运行时从JBoss server.xml读取jvmRoute值?

[英]Is there a way to read the jvmRoute value from the JBoss server.xml at runtime?

我们的JBoss server.xml文件具有以下这一行:

 <Engine name="jboss.web" defaultHost="localhost" jvmRoute="app_server_01">

有什么方法可以在运行时使用Java获取jvmroute值(在本例中为app_server_01 )?

背景

我们在应用程序服务器和Apache服务器之间配置了会话关联性(粘性会话)。 JBoss将jvmroute(app_server_01)附加到JSESSIONID。 我们在单个主机上配置了多个应用程序,但是在不同的应用程序服务器上运行。 我们想使用servlet过滤器将适当的jvmroute附加到JSESSIONID上。

JMX版本

您可以查询引擎的MBean以获取以下信息:

  MBeanServer server = org.jboss.mx.util.MBeanServerLocator.locateJBoss();
  String jvmRoute = (String)server.getAttribute(new ObjectName("jboss.web:type=Engine"), "jvmRoute");

XML解析版本

另一个选择是使用“ jboss.server.home.dir”系统属性来找到server.xml文件的完整路径,然后使用XML解析器将其打开。

例如,在JBoss 4.2.2中,server.xml文件位于:

System.getProperty("jboss.server.home.dir") + File.separator +
  "deploy" + File.separator +
  "jboss-web.deployer" + File.separator +
  "server.xml"

您可以将此文件加载到所需的任何XML解析器中。

在JBoss 5.1.0中,目录结构已更改,因此它将是:

// Incompatible with JBoss 4.x:
System.getProperty("jboss.server.home.dir") + File.separator +
  "deploy" + File.separator +
  "jbossweb.sar" + File.separator +
  "server.xml"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM