1

我将我的应用程序部署为 myApp1 在 tomcat 6 服务上。由于某些要求,我复制了 myApp1 并粘贴在 webapp 下作为 myApp2。现在我重新启动了 tomcat 并点击了 myApp1 的 URL。工作得很好。但是在点击 app2 的 url 时,我得到 org.infinispan.jmx.JmxDomainConflictException: Domain already registered org.infinispan 。下面是异常堆栈跟踪中的根本原因部分

  root cause 

    org.infinispan.jmx.JmxDomainConflictException: Domain already registered org.infinispan
org.infinispan.jmx.JmxUtil.buildJmxDomain(JmxUtil.java:73)
org.infinispan.jmx.CacheManagerJmxRegistration.updateDomain(CacheManagerJmxRegistration.java:92)
org.infinispan.jmx.CacheManagerJmxRegistration.buildRegistrar(CacheManagerJmxRegistration.java:86)
org.infinispan.jmx.AbstractJmxRegistration.registerMBeans(AbstractJmxRegistration.java:46)
org.infinispan.jmx.CacheManagerJmxRegistration.start(CacheManagerJmxRegistration.java:62)
org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:637)
org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:319)
org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:283)
org.xwiki.cache.infinispan.internal.InfinispanCacheFactory.initialize(InfinispanCacheFactory.java:134)
org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39)
org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:295)
org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:358)
org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:324)
org.xwiki.component.embed.EmbeddableComponentManager.lookup(EmbeddableComponentManager.java:147)
org.xwiki.component.internal.DefaultComponentManager.lookup(DefaultComponentManager.java:72)
org.xwiki.cache.internal.DefaultCacheManager.getCacheFactory(DefaultCacheManager.java:79)
org.xwiki.cache.internal.DefaultCacheManager.getCacheFactory(DefaultCacheManager.java:61)
com.xpn.xwiki.XWiki.getCacheFactory(XWiki.java:5887)

有关信息,我将 Tomcat 作为服务运行。

4

2 回答 2

2

这很可能是由于您的两个应用程序同时运行,并试图使用相同的资源。从错误消息的外观来看,“infinispan”在启动时注册了一个 JMX 域,并且不允许这样的多个实例。

来自谷歌:如果您想允许在配置元素中配置多个具有相同 JMX 域启用allowDuplicateDomains属性的实例globalJmxStatistics

于 2012-04-24T10:33:34.993 回答
0

对于那些使用 Spring Boot + Infinispan starter的人来说,这里是关闭 JMX 的方法:

@org.springframework.context.annotation.Configuration
public class InfinispanConfiguration {

    @Bean
    public InfinispanGlobalConfigurationCustomizer globalCustomizer() {
        return builder -> builder.jmx().disable();
    }
}
于 2021-09-29T15:00:35.087 回答