Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在运行时从JBoss server.xml读取jvmRoute值?_Java_Apache_Jboss - Fatal编程技术网

Java 有没有办法在运行时从JBoss server.xml读取jvmRoute值?

Java 有没有办法在运行时从JBoss server.xml读取jvmRoute值?,java,apache,jboss,Java,Apache,Jboss,我们的JBoss server.xml文件有以下行: <Engine name="jboss.web" defaultHost="localhost" jvmRoute="app_server_01"> 是否有任何方法可以在运行时使用Java获取jvmroute值(在本例中为app\u server\u 01) 背景 我们在应用服务器和Apache服务器之间配置了会话关联(粘性会话)。JBoss将jvmroute(app_server_01)附加到JSESSIONID。我们在

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

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

是否有任何方法可以在运行时使用Java获取jvmroute值(在本例中为
app\u server\u 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"

谢谢你,马特。你回答得太快了,我的经理通过谷歌找到了你的答案。