GeoServer
  1. GeoServer
  2. GEOS-3400

org.geoserver.platform.ServiceException: No such operation wms 1.1.0 GetCapabilities?SERVICE=WMS

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-RC1
    • Fix Version/s: 2.0-RC2
    • Component/s: GWC
    • Labels:
      None
    • Environment:
      Ubuntu 9.04, GeoServer 2.0-RC1.
    • Number of attachments :
      0

      Description

      GeoWebCache fails to access WMS.

      GeoWebCache Page (http://localhost:8080/geoserver/gwc/demo)

      28 Aug 10:58:18 ERROR [geoserver.ows] -
      org.geoserver.platform.ServiceException: No such operation wms 1.1.0 GetCapabilities?SERVICE=WMS
      at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:401)
      at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:209)
      at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
      at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
      at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
      at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
      28 Aug 10:58:18 ERROR [geoserver.ows] -
      org.geoserver.platform.ServiceException: No such operation wms 1.1.0 GetCapabilities?SERVICE=WMS
      at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:401)
      at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:209)
      at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
      at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
      at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
      at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
      at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

        Activity

        Hide
        Andrea Aime added a comment -

        The URL seems wrong, GetCapabilities?service=WMS?
        It should be ows?service=WMS&request=GetCapabilities

        Is this URL generated internally by GWC or did you reconfigure GWC somehow?

        Show
        Andrea Aime added a comment - The URL seems wrong, GetCapabilities?service=WMS? It should be ows?service=WMS&request=GetCapabilities Is this URL generated internally by GWC or did you reconfigure GWC somehow?
        Hide
        Arne Kepp added a comment -

        Hm, so this is probably a documentation bug, combined with the fact that I have been producing plugins for both GS 1.7.x and GS 2.x out of the same tree.

        Is that with GEOSERVER_WMS_URL set , or is GeoServer not accessible through http://localhost:8080/geoserver ?

        Show
        Arne Kepp added a comment - Hm, so this is probably a documentation bug, combined with the fact that I have been producing plugins for both GS 1.7.x and GS 2.x out of the same tree. Is that with GEOSERVER_WMS_URL set , or is GeoServer not accessible through http://localhost:8080/geoserver ?
        Hide
        Matt Bull added a comment -

        Thanks for your fast response. I think this URL is generated internally by GWC, we have not changed any conifguration files. We have tried amending the 'geoserver-2.0-RC1/webapps/geoserver/WEB-INF/web.xml' file to include that shown below (and as documented) but the same error is produced.

        <context-param>
        <param-name>GEOSERVER_WMS_URL</param-name>
        <param-value>http://localhost:8080/geoserver/wms?request=GetCapabilities</param-value>
        </context-param>

        Show
        Matt Bull added a comment - Thanks for your fast response. I think this URL is generated internally by GWC, we have not changed any conifguration files. We have tried amending the 'geoserver-2.0-RC1/webapps/geoserver/WEB-INF/web.xml' file to include that shown below (and as documented) but the same error is produced. <context-param> <param-name>GEOSERVER_WMS_URL</param-name> <param-value> http://localhost:8080/geoserver/wms?request=GetCapabilities </param-value> </context-param>
        Hide
        Arne Kepp added a comment -

        Do you work with Ale ? Just wondering whether we're wasting time discussing both on JIRA and the mailinglist, where a similar question was posed a few minutes before this ticket was opened.

        So does your web.xml still contain the context parameter ? If so, remove it and restart the servlet.

        What URL do you use to access GeoServer in your browser ?

        Show
        Arne Kepp added a comment - Do you work with Ale ? Just wondering whether we're wasting time discussing both on JIRA and the mailinglist, where a similar question was posed a few minutes before this ticket was opened. So does your web.xml still contain the context parameter ? If so, remove it and restart the servlet. What URL do you use to access GeoServer in your browser ?
        Hide
        Matt Bull added a comment -

        Sorry, I'm afraid I don't work with Ale.

        Your comments have certainly helped and we have observed the following.

        Works: Removing the GEOSERVER_WMS_URL context parameter.

        Does not work:
        <context-param>
        <param-name>GEOSERVER_WMS_URL</param-name>
        <param-value>http://localhost:8080/geoserver/wms?request=GetCapabilities</param-value>
        </context-param>

        Does not work:
        <context-param>
        <param-name>GEOSERVER_WMS_URL</param-name>
        <param-value>http://127.0.0.1:8080/geoserver/wms?request=GetCapabilities</param-value>
        </context-param>

        Does not work:
        <context-param>
        <param-name>GEOSERVER_WMS_URL</param-name>
        <param-value>http://192.168.0.21:8080/geoserver/wms?request=GetCapabilities</param-value>
        </context-param>

        Including the parameter seems to cause the exception.

        Show
        Matt Bull added a comment - Sorry, I'm afraid I don't work with Ale. Your comments have certainly helped and we have observed the following. Works: Removing the GEOSERVER_WMS_URL context parameter. Does not work: <context-param> <param-name>GEOSERVER_WMS_URL</param-name> <param-value> http://localhost:8080/geoserver/wms?request=GetCapabilities </param-value> </context-param> Does not work: <context-param> <param-name>GEOSERVER_WMS_URL</param-name> <param-value> http://127.0.0.1:8080/geoserver/wms?request=GetCapabilities </param-value> </context-param> Does not work: <context-param> <param-name>GEOSERVER_WMS_URL</param-name> <param-value> http://192.168.0.21:8080/geoserver/wms?request=GetCapabilities </param-value> </context-param> Including the parameter seems to cause the exception.
        Hide
        Arne Kepp added a comment -

        Ok, that makes sense then.

        You should only set this variable if the WMS is not accessible through the default path, which is http://localhost:8080/geoserver/wms

        But I have also made a mistake in the documentation, the getcapabilities document is no longer the correct URL, it should just be the WMS path.

        Show
        Arne Kepp added a comment - Ok, that makes sense then. You should only set this variable if the WMS is not accessible through the default path, which is http://localhost:8080/geoserver/wms But I have also made a mistake in the documentation, the getcapabilities document is no longer the correct URL, it should just be the WMS path.

          People

          • Assignee:
            Arne Kepp
            Reporter:
            Matt Bull
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: