Hello, I have I have been trying to run Geoserver in a cluster with two nodes using docker compose in Ubuntu 20.04. I have tried with Geoserver 2.20.2 and 2.20.3 using JMS clustering plugin. Whenever I try to deploy a style either from the UI or from the API to one of the nodes, the style is deployed onto the node but it is not propagated onto the replicated node. The following error occurs. I have tried creating styles datastores and layers and they all propagate to the replica.
I`m using this curl from to create the style from the api: curl -u admin:geoserver -XPOST -H "Content-type: application/zip" --data-binary @roads_style.zip http://localhost:8080/geoserver/rest/styles?name=roads_style The resulting error master_1 | 10 Mar 11:00:33 WARN [catalog.impl] - Catalog listener threw exception handling event. master_1 | java.lang.NoClassDefFoundError: org/jdom2/JDOMException master_1 | at java.base/java.lang.Class.getDeclaredMethods0(Native Method) master_1 | at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166) master_1 | at java.base/java.lang.Class.getDeclaredMethod(Class.java:2473) master_1 | at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:183) master_1 | at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:168) master_1 | at com.thoughtworks.xstream.core.util.SerializationMembers.getRRMethod(SerializationMembers.java:199) master_1 | at com.thoughtworks.xstream.core.util.SerializationMembers.callWriteReplace(SerializationMembers.java:97) master_1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:78) master_1 | at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) master_1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) master_1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) master_1 | at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82) master_1 | at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37) master_1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:1320) master_1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:1309) master_1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:1282) master_1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:1269) master_1 | at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:39) master_1 | at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:19) master_1 | at org.geoserver.cluster.JMSPublisher.publish(JMSPublisher.java:63) master_1 | at org.geoserver.cluster.server.JMSCatalogListener.handleAddEvent(JMSCatalogListener.java:118) master_1 | at org.geoserver.catalog.impl.CatalogImpl.event(CatalogImpl.java:1873) master_1 | at org.geoserver.catalog.impl.CatalogImpl.fireAdded(CatalogImpl.java:1826) master_1 | at org.geoserver.catalog.impl.CatalogImpl.added(CatalogImpl.java:1804) master_1 | at org.geoserver.catalog.impl.CatalogImpl.add(CatalogImpl.java:1625) master_1 | at org.geoserver.security.SecureCatalogImpl.add(SecureCatalogImpl.java:1320) master_1 | at org.geoserver.catalog.impl.AbstractFilteredCatalog.add(AbstractFilteredCatalog.java:636) master_1 | at org.geoserver.catalog.impl.AbstractCatalogDecorator.add(AbstractCatalogDecorator.java:573) master_1 | at org.geoserver.rest.catalog.StyleController.stylePost(StyleController.java:195) master_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) master_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) master_1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) master_1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566) master_1 | at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) master_1 | at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) master_1 | at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) master_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) master_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) master_1 | at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) master_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) master_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) master_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) master_1 | at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) master_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) master_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) master_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:357) master_1 | at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:176) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73) master_1 | at org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48) master_1 | at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) master_1 | at org.geoserver.flow.controller.IpBlacklistFilter.doFilter(IpBlacklistFilter.java:89) master_1 | at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) master_1 | at org.geoserver.monitor.MonitorFilter.doFilter(MonitorFilter.java:144) master_1 | at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) master_1 | at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:43) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) master_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) master_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) master_1 | at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) master_1 | at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) master_1 | at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215) master_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) master_1 | at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) master_1 | at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) master_1 | at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) master_1 | at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) master_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) master_1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) master_1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) master_1 | at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142) master_1 | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) master_1 | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:102) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:54) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) master_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) master_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) master_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) master_1 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) master_1 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) master_1 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) master_1 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) master_1 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) master_1 | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) master_1 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) master_1 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) master_1 | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) master_1 | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) master_1 | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) master_1 | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726) master_1 | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) master_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) master_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) master_1 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) master_1 | at java.base/java.lang.Thread.run(Thread.java:829) master_1 | Caused by: java.lang.ClassNotFoundException: org.jdom2.JDOMException master_1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1407) master_1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215) master_1 | ... 141 more Thank you in advance. Ricard
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users