[Geoserver-devel] Ambiguous REST routes rest/layers when adding geofence-server

Hi,

I’ve started to look at geofence-server for inclusion in our Geoserver setup. After deploying it to our Tomcat server I got an error message that aREST call for geoserver/rest/layers/ was ambiguous.

The message stated that both Geoserver LayerController and Geowebcache TileLayerController maps to rest/layers.

Looking at the code I see that Geowebcache tries to add a prefix gwc before rest/layers.This is done by a property in application.properties within gs-gwc.

When I remove the jar’s for geofence and restarts Tomcat it seems to work fine again. I can call /rest/layers for the Geoserver controller.

Do anyone have any idea why the inclusion of geofence-server have such implications for the REST routes for Geowebcache?

Geoserver version 2.17

Best regards,

Roar Brænden

Hi,

When do you get the error, at boot time or when calling a REST operation?
Can you please include a full stacktrace of the exception?

Cheers,
Emanuele

Il mer 30 dic 2020, 15:29 Roar Brænden <roar.brenden.no@anonymised.com> ha scritto:

Hi,

I’ve started to look at geofence-server for inclusion in our Geoserver setup. After deploying it to our Tomcat server I got an error message that aREST call for geoserver/rest/layers/ was ambiguous.

The message stated that both Geoserver LayerController and Geowebcache TileLayerController maps to rest/layers.

Looking at the code I see that Geowebcache tries to add a prefix gwc before rest/layers.This is done by a property in application.properties within gs-gwc.

When I remove the jar’s for geofence and restarts Tomcat it seems to work fine again. I can call /rest/layers for the Geoserver controller.

Do anyone have any idea why the inclusion of geofence-server have such implications for the REST routes for Geowebcache?

Geoserver version 2.17

Best regards,

Roar Brænden


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

ons. 30. des. 2020 kl. 16:34 skrev Emanuele Tajariol (GeoSolutions) <etj@anonymised.com.1268…>:

Hi,

When do you get the error, at boot time or when calling a REST operation?
Can you please include a full stacktrace of the exception?

The error appears when I make a REST call. I found the stacktrace, but I don’t think it tells much.
I was running with verbose logging, so I got some information from the initialisation as well. I clearly see that the two controllers adhere to the same address, but I don’t see why. I’ve included them later in two parts. The first one when the error occurs, and then after I deleted the jar’s regarding geofence.

It’s clearly that the gwc prefix is gone in the first part for geowebcache controllers, but not why.

Cheers,

Roar Brænden

Here is a stacktrace of the exception:

2020-12-30 14:30:33,150 ERROR [geoserver.rest] - Ambiguous handler methods mapped for ‘/geoserver/rest/layers/si_0u075jw_stations.json’: {public org.springframework.http.ResponseEntity org.geowebcache.rest.controller.TileLayerController.layerPut(org.geowebcache.layer.TileLayer,java.lang.String) throws org.geowebcache.GeoWebCacheException,org.geowebcache.rest.exception.RestException,java.io.IOException, public void org.geoserver.rest.catalog.LayerController.layerPut(org.geoserver.catalog.LayerInfo,java.lang.String,java.lang.String)}
java.lang.IllegalStateException: Ambiguous handler methods mapped for ‘/geoserver/rest/layers/si_0u075jw_stations.json’: {public org.springframework.http.ResponseEntity org.geowebcache.rest.controller.TileLayerController.layerPut(org.geowebcache.layer.TileLayer,java.lang.String) throws org.geowebcache.GeoWebCacheException,org.geowebcache.rest.exception.RestException,java.io.IOException, public void org.geoserver.rest.catalog.LayerController.layerPut(org.geoserver.catalog.LayerInfo,java.lang.String,java.lang.String)}
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:411)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:366)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:66)
at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:404)
at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1233)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1016)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:69)
at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:70)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66)
at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:51)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)

Here are the initialisation when the error occurs:

2020-12-30 14:27:08,283 INFO [geowebcache.GeoWebCacheDispatcher] - Invoked setServletPrefix(gwc)
2020-12-30 14:27:08,627 INFO [georss.GeoRSSPoller] - Initializing GeoRSS poller in a background job…
2020-12-30 14:27:08,628 INFO [georss.GeoRSSPoller] - No enabled GeoRSS feeds found, poller will not run.
2020-12-30 14:27:08,743 INFO [wms.WMSService] - Will recombine tiles for non-tiling clients.
2020-12-30 14:27:08,743 INFO [wms.WMSService] - Will proxy requests to backend that are not getmap or getcapabilities.

2020-12-30 14:27:08,994 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.g.r.GeoFenceController:
{GET /rest/geofence/info, produces [text/plain]}: getInfo()
2020-12-30 14:27:08,995 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.g.r.CacheController:
{GET [/rest/geofence/ruleCache/info, /rest/ruleCache/info], produces [text/plain]}: getCacheInfo()
{ [/rest/geofence/ruleCache/invalidate, /rest/ruleCache/invalidate]}: invalidateCache()
2020-12-30 14:27:08,999 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.g.s.r.AdminRulesRestController:
{GET /rest/geofence/adminrules/id/{id}, produces [application/xml || application/json]}: get(Long)
{GET /rest/geofence/adminrules, produces [application/xml || application/json]}: get(Integer,Integer,boolean,String,Boolean,String,Boolean,String,Boolean)
{POST /rest/geofence/adminrules/id/{id}, produces [text/plain]}: update(Long,JaxbAdminRule)
{GET /rest/geofence/adminrules/count, produces [application/xml || application/json]}: count(String,Boolean,String,Boolean,String,Boolean)
{DELETE /rest/geofence/adminrules/id/{id}}: delete(Long)
{POST /rest/geofence/adminrules}: insert(JaxbAdminRule)
{GET /rest/geofence/adminrules/move, produces [application/xml || application/json]}: move(int,String)
2020-12-30 14:27:09,002 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.g.s.r.RulesRestController:
{GET /rest/geofence/rules/id/{id}, produces [application/xml || application/json]}: get(Long)
{GET /rest/geofence/rules, produces [application/xml || application/json]}: get(Integer,Integer,boolean,String,Boolean,String,Boolean,Long,String,Boolean,String,Boolean,String,Boolean,String,Boolean,String,Boolean)
{POST /rest/geofence/rules/id/{id}}: update(Long,JaxbRule)
{GET /rest/geofence/rules/count, produces [application/xml || application/json]}: count(String,Boolean,String,Boolean,Long,String,Boolean,String,Boolean,String,Boolean,String,Boolean,String,Boolean)
{DELETE /rest/geofence/rules/id/{id}}: delete(Long)
{POST /rest/geofence/rules, consumes [text/xml || application/xml || application/json || text/json], produces [text/plain]}: insert(JaxbRule)
{GET /rest/geofence/rules/move, produces [application/xml || application/json]}: move(int,String)
{PUT /rest/geofence/rules/id/{id}}: clearAndUpdate(Long,JaxbRule)
2020-12-30 14:27:09,003 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.BlobStoreController:
{PUT /rest/blobstores/{blobStoreName}, consumes [application/xml || application/json || text/xml]}: blobStorePut(String,BlobStoreInfo)
{GET /rest/blobstores, produces [application/xml || application/json || text/xml]}: blobStoresGet()
{GET /rest/blobstores/{blobStoreName}, produces [application/xml || application/json || text/xml]}: blobStoreGet(String)
{DELETE /rest/blobstores/{blobStoreName}}: blobStoreDelete(String)
2020-12-30 14:27:09,003 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.BoundsController:
{GET /rest/bounds/{layer}/{srs}/{type}}: doGet(HttpServletRequest,String,String,String)
2020-12-30 14:27:09,003 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ByteStreamController:
{GET /rest/web/}: doGet(HttpServletRequest,HttpServletResponse)
2020-12-30 14:27:09,004 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.FilterUpdateController:
{POST /rest/filter/{filterName}/update/{updateType}}: doPost(HttpServletRequest,String,String)
2020-12-30 14:27:09,004 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.GridSetController:
{GET /rest/gridsets/{gridSetName}, produces [application/xml || application/json || text/xml]}: gridSetGet(String)
{GET /rest/gridsets, produces [application/xml || application/json || text/xml]}: gridSetsGet()
{PUT /rest/gridsets/{gridSetName}, consumes [application/xml || application/json || text/xml]}: gridSetPut(String,GridSet)
{DELETE /rest/gridsets/{gridSetName}}: gridSetDelete(String)
2020-12-30 14:27:09,005 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.GWCIndexController:
{GET /rest, produces [text/html]}: handleRequestInternal(HttpServletRequest)
2020-12-30 14:27:09,005 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.MassTruncateController:
{POST /rest/masstruncate}: doPost(HttpServletRequest)
{GET /rest/masstruncate}: doGet(HttpServletRequest)
2020-12-30 14:27:09,005 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.MemoryCacheController:
{GET /rest/statistics}: doGet(HttpServletRequest)
2020-12-30 14:27:09,006 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ReloadController:
{POST /rest/reload}: doPost(HttpServletRequest,InputStream,Map)
2020-12-30 14:27:09,006 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.SeedController:
{POST /rest/seed/{layer:.+}}: doPost(HttpServletRequest,InputStream,String,Map)
{POST /rest/seed}: doPost(HttpServletRequest)
{GET /rest/seed.json, produces [application/json]}: doGet(HttpServletRequest)
{GET /rest/seed/{layer}.json, produces [application/json || text/plain]}: doGet(HttpServletRequest,String)
{GET /rest/seed/{layer}}: doFormGet(HttpServletRequest,String)
2020-12-30 14:27:09,007 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ServerController:
{GET /rest/global}: serverGet()
{PUT /rest/global}: serverPut(ServerConfigurationPOJO)
2020-12-30 14:27:09,007 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.TileLayerController:
{DELETE /rest/layers/{layer}}: doDelete(HttpServletRequest,String)
{GET /rest/layers}: layersGet(HttpServletRequest)
{POST /rest/layers/{layerName}}: layerPost(TileLayer,String)
{GET /rest/layers/{layer}}: layerGet(String)
{PUT /rest/layers/{layerName}}: layerPut(TileLayer,String)
2020-12-30 14:27:09,008 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.d.r.c.DiskQuotaController:
{GET /rest/diskquota}: doGet(HttpServletRequest)
{PUT /rest/diskquota}: doPut(HttpServletRequest)
2020-12-30 14:27:09,008 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.g.d.GeoServerGWCDispatcherController:
{ [, /home, /demo/
, /proxy/**]}: handleRestApiRequest(HttpServletRequest,HttpServletResponse)
2020-12-30 14:27:09,011 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.IndexController:
{GET [/rest, /rest/index], produces [text/html]}: get()
2020-12-30 14:27:09,016 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.AboutController:
{GET /rest/about/manifest, produces [text/html || application/json || application/xml]}: manifestGet(String,String,String,String,String)
{GET /rest/about/version, produces [text/html || application/json || application/xml]}: versionGet(String,String,String,String,String)
2020-12-30 14:27:09,017 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.AboutStatusController:
{GET /rest/about/status/{target}, produces [text/html || application/json || application/xml]}: statusGet(String)
{GET /rest/about/status, produces [text/html || application/json || application/xml]}: statusGet()
2020-12-30 14:27:09,031 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.CoverageController:
{PUT /rest/workspaces/{workspaceName}/coveragestores/{storeName}/coverages/{coverageName}, consumes [text/xml || application/xml || application/json]}: coveragePut(CoverageInfo,String,String,String,String)
{DELETE /rest/workspaces/{workspaceName}/coveragestores/{storeName}/coverages/{coverageName}}: coverageDelete(String,String,String,boolean)
{GET /rest/workspaces/{workspaceName}/coveragestores/{storeName}/coverages/{coverageName}, produces [text/xml || application/xml || application/json || text/html || text/json]}: coverageGet(String,String,String)
{GET /rest/workspaces/{workspaceName}/coverages/{coverageName}, produces [text/xml || application/xml || application/json || text/html || text/json]}: coverageGet(String,String)
{POST [/rest/workspaces/{workspaceName}/coverages, /rest/workspaces/{workspaceName}/coveragestores/{storeName}/coverages], consumes [text/xml || application/xml || application/json]}: coveragePost(CoverageInfo,String,String,UriComponentsBuilder)
{GET /rest/workspaces/{workspaceName}/coverages, produces [text/xml || application/xml || application/json || text/html || text/json]}: coveragesGet(String,String)
{GET /rest/workspaces/{workspaceName}/coveragestores/{storeName}/coverages, produces [text/xml || application/xml || application/json || text/html]}: coveragesGet(String,String,String)
2020-12-30 14:27:09,034 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.CoverageStoreController:
{PUT /rest/workspaces/{workspaceName}/coveragestores/{storeName}, consumes [application/json || text/json || application/xml || text/xml]}: coverageStorePut(CoverageStoreInfo,String,String)
{GET /rest/workspaces/{workspaceName}/coveragestores/{storeName}, produces [application/json || application/xml || text/html]}: coverageStoreGet(String,String)
{POST /rest/workspaces/{workspaceName}/coveragestores, consumes [application/json || text/json || application/xml || text/xml]}: coverageStorePost(CoverageStoreInfo,String,UriComponentsBuilder)
{GET /rest/workspaces/{workspaceName}/coveragestores, produces [application/json || application/xml || text/html]}: coverageStoresGet(String)
{DELETE /rest/workspaces/{workspaceName}/coveragestores/{storeName}}: coverageStoreDelete(String,String,boolean,String)
2020-12-30 14:27:09,055 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.CoverageStoreFileController:
{PUT /rest/workspaces/{workspaceName}/coveragestores/{storeName}/{method}.{format}, produces [application/xml || application/json]}: coverageStorePut(String,String,UploadMethod,String,String,Boolean,String,String,HttpServletRequest)
{POST /rest/workspaces/{workspaceName}/coveragestores/{storeName}/{method}.{format}}: coverageStorePost(String,String,UploadMethod,String,String,Boolean,HttpServletRequest)
2020-12-30 14:27:09,059 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.DataStoreController:
{GET /rest/workspaces/{workspaceName}/datastores, produces [application/json || application/xml || text/html]}: dataStoresGet(String)
{POST /rest/workspaces/{workspaceName}/datastores, consumes [application/json || text/json || application/xml || text/xml]}: dataStorePost(DataStoreInfo,String,UriComponentsBuilder)
{PUT /rest/workspaces/{workspaceName}/datastores/{storeName}, consumes [application/json || text/json || application/xml || text/xml]}: dataStorePut(DataStoreInfo,String,String)
{GET /rest/workspaces/{workspaceName}/datastores/{storeName}, produces [application/json || application/xml || text/html]}: dataStoreGet(String,String)
{DELETE /rest/workspaces/{workspaceName}/datastores/{storeName}}: dataStoreDelete(String,String,boolean,String)
2020-12-30 14:27:09,069 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.DataStoreFileController:
{GET /rest/workspaces/{workspaceName}/datastores/{storeName}/{method}.{format}}: dataStoresGet(String,String)
{PUT /rest/workspaces/{workspaceName}/datastores/{storeName}/{method}.{format}}: dataStorePut(String,String,UploadMethod,String,String,String,String,String,String,HttpServletRequest,HttpServletResponse)
2020-12-30 14:27:09,073 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.FeatureTypeController:
{GET [/rest/workspaces/{workspaceName}/featuretypes, /rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes], produces [text/html || application/json || application/xml]}: featureTypesGet(String,String,String)
{DELETE [/rest/workspaces/{workspaceName}/featuretypes/{featureTypeName}, /rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes/{featureTypeName}], produces [text/html || application/json || application/xml]}: featureTypeDelete(String,String,String,Boolean)
{PUT [/rest/workspaces/{workspaceName}/featuretypes/{featureTypeName}, /rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes/{featureTypeName}], produces [text/html || application/json || application/xml]}: featureTypePut(String,String,String,FeatureTypeInfo,String)
{POST [/rest/workspaces/{workspaceName}/featuretypes, /rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes], consumes [text/json || application/json || text/xml || application/xml]}: featureTypePost(String,String,FeatureTypeInfo,UriComponentsBuilder)
{GET [/rest/workspaces/{workspaceName}/featuretypes/{featureTypeName}, /rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes/{featureTypeName}], produces [text/html || application/json || application/xml]}: featureTypeGet(String,String,String,Boolean)
2020-12-30 14:27:09,076 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.LayerController:
{GET [/rest/layers, /rest/workspaces/{workspaceName}/layers], produces [application/json || application/xml || text/html]}: layersGet(String)
{GET [/rest/layers/{layerName}, /rest/workspaces/{workspaceName}/layers/{layerName}], produces [application/json || application/xml || text/html]}: layerGet(String,String)
{PUT [/rest/layers/{layerName}, /rest/workspaces/{workspaceName}/layers/{layerName}]}: layerPut(LayerInfo,String,String)
{DELETE [/rest/layers/{layerName}, /rest/workspaces/{workspaceName}/layers/{layerName}]}: layerDelete(String,String,boolean)
2020-12-30 14:27:09,079 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.LayerGroupController:
{GET [/rest/layergroups, /rest/workspaces/{workspaceName}/layergroups], produces [application/json || application/xml ||

And later when I deleted the geofence jar’s:

2020-12-30 14:54:26,514 TRACE [ows.OWSHandlerMapping] - Mapped [/gwc/service/] onto ‘dispatcher’
2020-12-30 14:54:26,514 DEBUG [ows.OWSHandlerMapping] - Patterns [/gwc/service/
] in ‘gwcServiceDispatcherMapping’
2020-12-30 14:54:26,550 INFO [geowebcache.GeoWebCacheDispatcher] - Invoked setServletPrefix(gwc)
2020-12-30 14:54:26,639 INFO [georss.GeoRSSPoller] - Initializing GeoRSS poller in a background job…
2020-12-30 14:54:26,639 INFO [georss.GeoRSSPoller] - No enabled GeoRSS feeds found, poller will not run.
2020-12-30 14:54:26,990 INFO [wms.WMSService] - Will recombine tiles for non-tiling clients.
2020-12-30 14:54:26,990 INFO [wms.WMSService] - Will proxy requests to backend that are not getmap or getcapabilities.
2020-12-30 14:54:27,325 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.BlobStoreController:
{GET /gwc/rest/blobstores/{blobStoreName}, produces [application/xml || application/json || text/xml]}: blobStoreGet(String)
{GET /gwc/rest/blobstores, produces [application/xml || application/json || text/xml]}: blobStoresGet()
{DELETE /gwc/rest/blobstores/{blobStoreName}}: blobStoreDelete(String)
{PUT /gwc/rest/blobstores/{blobStoreName}, consumes [application/xml || application/json || text/xml]}: blobStorePut(String,BlobStoreInfo)
2020-12-30 14:54:27,330 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.BoundsController:
{GET /gwc/rest/bounds/{layer}/{srs}/{type}}: doGet(HttpServletRequest,String,String,String)
2020-12-30 14:54:27,331 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ByteStreamController:
{GET /gwc/rest/web/**}: doGet(HttpServletRequest,HttpServletResponse)
2020-12-30 14:54:27,331 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.FilterUpdateController:
{POST /gwc/rest/filter/{filterName}/update/{updateType}}: doPost(HttpServletRequest,String,String)
2020-12-30 14:54:27,335 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.GridSetController:
{GET /gwc/rest/gridsets/{gridSetName}, produces [application/xml || application/json || text/xml]}: gridSetGet(String)
{GET /gwc/rest/gridsets, produces [application/xml || application/json || text/xml]}: gridSetsGet()
{PUT /gwc/rest/gridsets/{gridSetName}, consumes [application/xml || application/json || text/xml]}: gridSetPut(String,GridSet)
{DELETE /gwc/rest/gridsets/{gridSetName}}: gridSetDelete(String)
2020-12-30 14:54:27,335 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.GWCIndexController:
{GET /gwc/rest, produces [text/html]}: handleRequestInternal(HttpServletRequest)
2020-12-30 14:54:27,336 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.MassTruncateController:
{GET /gwc/rest/masstruncate}: doGet(HttpServletRequest)
{POST /gwc/rest/masstruncate}: doPost(HttpServletRequest)
2020-12-30 14:54:27,337 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.MemoryCacheController:
{GET /gwc/rest/statistics}: doGet(HttpServletRequest)
2020-12-30 14:54:27,337 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ReloadController:
{POST /gwc/rest/reload}: doPost(HttpServletRequest,InputStream,Map)
2020-12-30 14:54:27,338 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.SeedController:
{GET /gwc/rest/seed/{layer}.json, produces [application/json || text/plain]}: doGet(HttpServletRequest,String)
{GET /gwc/rest/seed.json, produces [application/json]}: doGet(HttpServletRequest)
{POST /gwc/rest/seed/{layer:.+}}: doPost(HttpServletRequest,InputStream,String,Map)
{POST /gwc/rest/seed}: doPost(HttpServletRequest)
{GET /gwc/rest/seed/{layer}}: doFormGet(HttpServletRequest,String)
2020-12-30 14:54:27,339 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.ServerController:
{GET /gwc/rest/global}: serverGet()
{PUT /gwc/rest/global}: serverPut(ServerConfigurationPOJO)
2020-12-30 14:54:27,340 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.r.c.TileLayerController:
{DELETE /gwc/rest/layers/{layer}}: doDelete(HttpServletRequest,String)
{GET /gwc/rest/layers}: layersGet(HttpServletRequest)
{PUT /gwc/rest/layers/{layerName}}: layerPut(TileLayer,String)
{GET /gwc/rest/layers/{layer}}: layerGet(String)
{POST /gwc/rest/layers/{layerName}}: layerPost(TileLayer,String)
2020-12-30 14:54:27,341 TRACE [controller.GwcWmtsRestUrlHandlerMapping] -
o.g.d.r.c.DiskQuotaController:
{GET /gwc/rest/diskquota}: doGet(HttpServletRequest)
{PUT /gwc/rest/diskquota}: doPut(HttpServletRequest)