Hi,

The service requires a login and password, and normally these values are filled 
out. But I have removed the username and password from the example for security 
reasons. :) It should however still be possible to get the getcapabilities 
parsed correctly without username and password.

For example, this WMS service url is working without issues (and without 
username and password provided)
https://services.kortforsyningen.dk/service?servicename=fot2007&client=undefined&request=GetCapabilities&service=WMS&version=1.1.1

The only difference I have found in the two WMS getcapability xml's is the 
xlink namespace:

In the failing WMS (servicename=topo_geo) the online resource is
<OnlineResource xmlns:xlink="https://www.w3.org/1999/xlink"; 
xlink:href="https://services.kortforsyningen.dk/topo_geo?&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=Territorialomraade&format=image/png&STYLE=default";
 xlink:type="simple"/>

While in the WMS that is working (servicename=fot2007) the online resource is
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"; xlink:type="simple" 
xlink:href="https://services.kortforsyningen.dk/fot2007?&amp;version=1.1.1&amp;service=WMS&amp;request=GetLegendGraphic&amp;layer=HOEJ_BEBYGGELSE&amp;format=image/png&amp;STYLE=default"/>

The difference is https vs http for the xlink namespace. Could this be related 
to the error, and if so, is it an error in geoserver parsing or in the WMS 
service itself?

/Kristoffer

Fra: Rahkonen Jukka (MML) [mailto:[email protected]]
Sendt: 7. december 2017 10:36
Til: KSPA - Kristoffer Steen Pagels <[email protected]>; 
[email protected]
Emne: VS: NPE when creating cascading WMS service

Hi,

That server is as least reporting nonsense as OnlineResource:

<OnlineResource 
xlink:href="https://services.kortforsyningen.dk/topo_geo?ignoreillegallayers=TRUE&transparent=TRUE&&";
 xlink:type="simple"/>

-Jukka Rahkonen-


Lähettäjä: KSPA - Kristoffer Steen Pagels [mailto:[email protected]]
Lähetetty: 7. joulukuuta 2017 9:43
Vastaanottaja: 
[email protected]<mailto:[email protected]>
Aihe: [Geoserver-users] NPE when creating cascading WMS service

Hi,

I'm running geoserver 1.12.1 on windows 7, but have experienced the same issue 
on geoserver 1.11.2 on Ubuntu as well.

I have searched the web for solutions to this issue and have not been able to 
find any solution, so now I send this mail to the mailinglist.

I want to cascade a remote WMS service on my geoserver, So I add a new 
WMS-store (from other data sources), and enter the following values

Workspace: kort (not important, just select an empty workspace)
WMS source name: kort
Capabilities URL:
https://services.kortforsyningen.dk/service?servicename=topo_geo&client=undefined&request=GetCapabilities&service=WMS&version=1.1.1

I leave the rest of the settings for default values, and click save.

Instead of getting an list of layers that can be published, I get an exception:

org.apache.wicket.WicketRuntimeException: Exception 'null' occurred during 
validation 
org.geoserver.web.data.store.WMSStoreNewPage$WMSCapabilitiesURLValidator on 
component 13:form:capabilitiesURL:border:border_body:paramValue
               at 
org.apache.wicket.markup.html.form.FormComponent.validateValidators(FormComponent.java:1529)
               at 
org.apache.wicket.markup.html.form.FormComponent.validate(FormComponent.java:1139)
               at 
org.apache.wicket.markup.html.form.Form$18.validate(Form.java:1950)
               at 
org.apache.wicket.markup.html.form.Form$ValidationVisitor.component(Form.java:177)
               at 
org.apache.wicket.markup.html.form.Form$ValidationVisitor.component(Form.java:161)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:262)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:262)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:262)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:262)
               at 
org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:245)
               at 
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:382)
               at 
org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1155)
               at 
org.apache.wicket.markup.html.form.Form.validateComponents(Form.java:1942)
               at 
org.apache.wicket.markup.html.form.Form.validate(Form.java:1884)
               at org.apache.wicket.markup.html.form.Form.process(Form.java:945)
               at 
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797)
               at 
org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
               at 
org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
               at 
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
               at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
               at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source)
               at java.lang.reflect.Method.invoke(Unknown Source)
               at 
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
               at 
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
               at 
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
               at 
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
               at 
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895)
               at 
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
               at 
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
               at 
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
               at 
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
               at 
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
               at 
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
               at 
org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:159)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
               at 
org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:157)
               at 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
               at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
               at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
               at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
               at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
               at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
               at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
               at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
               at 
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
               at 
org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
               at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
               at 
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
               at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
               at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
               at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
               at 
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
               at 
org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:116)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
               at 
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:157)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
               at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
               at 
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
               at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
               at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
               at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
               at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
               at 
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:152)
               at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
               at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:88)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:89)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
               at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
               at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
               at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
               at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
               at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
               at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
               at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
               at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
               at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
               at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
               at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
               at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
               at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
               at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
               at org.eclipse.jetty.server.Server.handle(Server.java:499)
               at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
               at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
               at 
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
               at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
               at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
               at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
               at 
org.geotools.data.wms.xml.WMSComplexTypes$_LegendURLType.getValue(WMSComplexTypes.java:4352)
               at 
org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:188)
               at 
org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:276)
               at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
 Source)
               at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown
 Source)
               at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
 Source)
               at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
               at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
Source)
               at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
 Source)
               at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
               at javax.xml.parsers.SAXParser.parse(Unknown Source)
               at 
org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:156)
               at 
org.geotools.data.wms.response.WMSGetCapabilitiesResponse.<init>(WMSGetCapabilitiesResponse.java:63)
               at 
org.geotools.data.wms.WMS1_0_0$GetCapsRequest.createResponse(WMS1_0_0.java:235)
               at 
org.geotools.data.ows.AbstractOpenWebService.internalIssueRequest(AbstractOpenWebService.java:445)
               at 
org.geotools.data.wms.WebMapServer.issueRequest(WebMapServer.java:435)
               at 
org.geotools.data.ows.AbstractOpenWebService.negotiateVersion(AbstractOpenWebService.java:272)
               at 
org.geotools.data.ows.AbstractOpenWebService.<init>(AbstractOpenWebService.java:120)
               at 
org.geotools.data.wms.WebMapServer.<init>(WebMapServer.java:398)
               at 
org.geoserver.web.data.store.WMSStoreNewPage$WMSCapabilitiesURLValidator.validate(WMSStoreNewPage.java:132)
               at 
org.apache.wicket.markup.html.form.FormComponent.validateValidators(FormComponent.java:1525)
               ... 127 more

I have tried to use the WMS service directly from openlayers, and it works 
perfectly, it is just when fetching capabilities from GeoServer that it fails.

/Kristoffer
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
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

[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to