我正在运行tomcat 7,并且在测试服务器上配置了2个虚拟主机。称它们为“ hostA”和“ hostB”。

工作正常,但我现在想使用javamelody监视两个应用程序。仅在1个应用程序上使用javamelody即可正常工作。但是在同时将Javamelody部署到两个应用程序时会出现问题。

在tomcat / temp / javamelody /中查看,我发现为每个上下文创建了不同的目录。不幸的是,javamelody将hostA和hostB视为相同的上下文(ROOT)。

简而言之,javamelody无法分辨hostA和hostB之间的区别,因为即使它们被配置为不同的虚拟主机,但两者都是ROOT上下文,因此javamelody忽略了这一点。

我正在寻找一种监视应用程序的方法,但是出于生产目的,我需要将它们作为ROOT上下文,否则用户将看到错误的URL。

例如必须

www.hostA.co.uk

www.hostB.co.uk



www.hostA.co.uk/contextA/

www.hostB.co.uk/contextB/

谢谢

最佳答案

我已经解决了这个问题,我在javamelody中找到了一个设置,可以让您设置自定义存储目录。现在,两个上下文都是根目录,但是数据是独立的,因此没有冲突。

server.xml的更改部分如下

<Host name="localhost"  appBase="webappsA/">
  <Context docBase="ROOT" path="" reloadable="false" >
    <Parameter name='javamelody.storage-directory' value='storeA'/>
  </Context>
</Host>

<Host name="127.0.0.1"  appBase="webappsB/">
  <Context docBase="ROOT" path="" reloadable="false" >
    <Parameter name='javamelody.storage-directory' value='storeB'/>
  </Context>
</Host>

10-07 16:47