Initializing module webfiles failed: A service was already registered with name org.onehippo.cms7.services.webfiles.watch.WebFilesWatcherService

Hi,

I have 2 docker containers running. One is exposing a mysql database. The other is running a tomcat that needs to serve the Hippo CMS and site.

When I initially deploy cms.war and site.war, everything works like a charm.

However, when I use cargo:redeploy of cms.war I get the following exception and it seems the cms app is completely broken. It’s also mentioning “Repository not initialized yet” when trying to do requests to /cms. But this seems to be an effect rather than a cause.

Did anyone experience the same?

Thanks
J

16.07.2018 09:39:24 ERROR http-nio-8080-exec-8 [ModuleManager.startModule:175] Initializing module webfiles failed
org.onehippo.cms7.services.HippoServiceException: A service was already registered with name org.onehippo.cms7.services.webfiles.watch.WebFilesWatcherService
        at org.onehippo.cms7.services.HippoServiceRegistry.registerNamedServiceInternal(HippoServiceRegistry.java:274) ~[hippo-services-4.3.0.jar:4.3.0]
        at org.onehippo.cms7.services.HippoServiceRegistry.registerService(HippoServiceRegistry.java:184) ~[hippo-services-4.3.0.jar:4.3.0]
        at org.onehippo.cms7.services.HippoServiceRegistry.registerService(HippoServiceRegistry.java:156) ~[hippo-services-4.3.0.jar:4.3.0]
        at org.onehippo.cms7.services.webfiles.WebFilesServiceModule.doInitialize(WebFilesServiceModule.java:70) ~[hippo-services-webfiles-4.3.0.jar:4.3.0]
        at org.onehippo.repository.modules.AbstractReconfigurableDaemonModule.initialize(AbstractReconfigurableDaemonModule.java:67) ~[hippo-repository-api-5.3.0.jar:5.3.0]
        at org.onehippo.repository.modules.ModuleManager.startModule(ModuleManager.java:172) ~[hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.onehippo.repository.modules.ModuleManager.startModules(ModuleManager.java:143) ~[hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.onehippo.repository.modules.ModuleManager.start(ModuleManager.java:80) ~[hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.start(LocalHippoRepository.java:315) ~[hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.lambda$initializeConfiguration$0(LocalHippoRepository.java:308) ~[hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.onehippo.cm.engine.ConfigurationServiceImpl.init(ConfigurationServiceImpl.java:279) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.onehippo.cm.engine.ConfigurationServiceImpl.start(ConfigurationServiceImpl.java:122) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.initializeConfiguration(LocalHippoRepository.java:308) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.initialize(LocalHippoRepository.java:292) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.create(LocalHippoRepository.java:122) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.LocalHippoRepository.create(LocalHippoRepository.java:112) [hippo-repository-engine-5.3.0.jar:5.3.0]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
        at org.hippoecm.repository.HippoRepositoryFactory.getHippoRepository(HippoRepositoryFactory.java:147) [hippo-repository-connector-5.3.0.jar:5.3.0]
        at org.hippoecm.repository.RepositoryServlet.init(RepositoryServlet.java:184) [hippo-repository-servlets-5.3.0.jar:5.3.0]
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:983) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4978) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5290) [catalina.jar:8.5.32]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) [catalina.jar:8.5.32]
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985) [catalina.jar:8.5.32]
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507) [catalina.jar:8.5.32]
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1650) [catalina.jar:8.5.32]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.5.32]
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [?:1.8.0_171]
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [?:1.8.0_171]
        at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1525) [catalina.jar:8.5.32]
        at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:773) [catalina.jar:8.5.32]
        at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:443) [catalina.jar:8.5.32]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:664) [servlet-api.jar:?]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [servlet-api.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.32]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-websocket.jar:8.5.32]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.32]
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:8.5.32]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.32]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [catalina.jar:8.5.32]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.32]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [catalina.jar:8.5.32]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) [tomcat-coyote.jar:8.5.32]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.32]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800) [tomcat-coyote.jar:8.5.32]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471) [tomcat-coyote.jar:8.5.32]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.32]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.32]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
16-Jul-2018 09:39:24.945 INFO [http-nio-8080-exec-8] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/cms.war] has finished in [10,098] ms
16.07.2018 09:39:52 WARN  EventListenersContainerSessionChecker-1 [EventListenersContainerImpl.doInit:304] The repository is not available. It will try initialization next time. javax.jcr.RepositoryException: javax.jcr.LoginException: Failed to borrow session from the pool. javax.jcr.RepositoryException: Repository not initialized yet.
16.07.2018 09:40:52 WARN  EventListenersContainerSessionChecker-1 [EventListenersContainerImpl.doInit:304] The repository is not available. It will try initialization next time. javax.jcr.RepositoryException: javax.jcr.LoginException: Failed to borrow session from the pool. javax.jcr.RepositoryException: Repository not initialized yet.
16.07.2018 09:41:52 WARN  EventListenersContainerSessionChecker-1 [EventListenersContainerImpl.doInit:304] The repository is not available. It will try initialization next time. javax.jcr.RepositoryException: javax.jcr.LoginException: Failed to borrow session from the pool. javax.jcr.RepositoryException: Repository not initialized yet.

Hippo doesn’t support live redeploy of the webapps in a running Tomcat instance. You need to shut down the Tomcat process and restart it completely.

(The underlying technical reason has to do with coordination of services between CMS and site via the shared classloader. We’re unlikely to change this anytime soon.)

1 Like