yes indeed. i create H2 database tables, some w/ and others w/o a geometry column. after publishing the first geometry-less one as a layer, the WFS GetCapabilities calls for both 1.0.0 and 1.1.0 versions fail.
you are also correct in pointing out the UI does not allow geometry-less layers. trying to view those (geomtry-less) layers the UI does not allow changing the panel b/c of missing BBOX info. the Layer Preview also does not work w/ those layers. i was planning today on adding a dummy geometry column --a point w/ 0 value coordinates-- to ensure that works around the issue. will report back if there's interest in finding out this stops the failing WFS calls. On Thu, 13 Oct 2016 19:38:02 +0200, Andrea Aime wrote: > So are you configuring geometryless layers via the REST interface? > The UI should not allow null bounding boxes even on geometryless > layers. > > Cheers > Andrea > > On Thu, Oct 13, 2016 at 6:45 PM, Raif S. Naffah <[email protected]> > wrote: > > > i believe what i'm seeing is explained by > > > > https://osgeo-org.atlassian.net/browse/GEOS-7216 > > > > > > On Wed, 28 Sep 2016 12:32:57 +1000, Raif S. Naffah wrote: > > > > > hi all, > > > > > > working w/ GeoServer 2.8.5 i'm getting sporadic failures when > > > requesting WFS capabilities. the failures show up in the > > > geoserver.log as follows: > > > > > > 2016-09-28 12:02:18,843 INFO [org.geoserver.wfs] - > > > Request: getServiceInfo > > > 2016-09-28 12:02:18,844 INFO [org.geoserver.wfs] - > > > Request: getCapabilities > > > baseUrl = http://localhost:9100/geoserver/ > > > service = WFS > > > 2016-09-28 12:02:18,879 ERROR [org.geoserver.ows] - > > > java.io.IOException > > > at > > > org.geoserver.wfs.response.GetCapabilitiesResponse.write( > > GetCapabilitiesResponse.java:63) > > > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:996) at > > > org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:279) > > > 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:923) > > > at > > > org.springframework.web.servlet.DispatcherServlet. > > doService(DispatcherServlet.java:852) > > > at > > > org.springframework.web.servlet.FrameworkServlet.processRequest( > > FrameworkServlet.java:882) > > > at > > > org.springframework.web.servlet.FrameworkServlet. > > doGet(FrameworkServlet.java:778) > > > 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.geoserver.filters.ThreadLocalsCleanupFilter.doFilter( > > ThreadLocalsCleanupFilter.java:28) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > 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.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.geoserver.platform.AdvancedDispatchFilter.doFilter( > > AdvancedDispatchFilter.java:50) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.springframework.security.web.FilterChainProxy$ > > VirtualFilterChain.doFilter(FilterChainProxy.java:311) > > > at > > > org.geoserver.security.filter.GeoServerCompositeFilter$ > > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69) > > > at > > > org.springframework.security.web.access.intercept. > > FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) > > > at > > > org.springframework.security.web.access.intercept. > > FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > > > 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:323) > > > at > > > org.geoserver.security.filter.GeoServerCompositeFilter$ > > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69) > > > at > > > org.springframework.security.web.access.ExceptionTranslationFilter. > > doFilter(ExceptionTranslationFilter.java:113) > > > 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:323) > > > at > > > org.geoserver.security.filter.GeoServerAnonymousAuthenticati > > onFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54) > > > at > > > org.springframework.security.web.FilterChainProxy$ > > VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > > at > > > org.geoserver.security.filter.GeoServerCompositeFilter$ > > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69) > > > at > > > org.springframework.security.web.authentication.www. > > BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) > > > 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.GeoServerBasicAuthenticationFi > > lter.doFilter(GeoServerBasicAuthenticationFilter.java:83) > > > at > > > org.springframework.security.web.FilterChainProxy$ > > VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > > at > > > org.geoserver.security.filter.GeoServerCompositeFilter$ > > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69) > > > at > > > org.springframework.security.web.context.SecurityContextPersistenceFilt > > er.doFilter(SecurityContextPersistenceFilter.java:87) > > > at > > > org.geoserver.security.filter.GeoServerSecurityContextPersis > > tenceFilter$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:323) > > > at > > > org.springframework.security.web.FilterChainProxy.doFilter( > > FilterChainProxy.java:173) > > > at > > > org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter( > > GeoServerSecurityFilterChainProxy.java:135) > > > at > > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate( > > DelegatingFilterProxy.java:346) > > > at > > > org.springframework.web.filter.DelegatingFilterProxy.doFilter( > > DelegatingFilterProxy.java:259) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:87) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42) > > > at org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.geoserver.filters.SessionDebugFilter.doFilter( > > SessionDebugFilter.java:48) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44) > > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain. > > doFilter(ServletHandler.java:1084) > > > at > > > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( > > CharacterEncodingFilter.java:88) > > > at > > > org.springframework.web.filter.OncePerRequestFilter. > > doFilter(OncePerRequestFilter.java:76) > > > 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) > > > Caused by: javax.xml.transform.TransformerException: > > > java.lang.NullPointerException at > > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform( > > TransformerImpl.java:746) > > > at > > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform( > > TransformerImpl.java:351) > > > at > > > org.geotools.xml.transform.TransformerBase$Task.run( > > TransformerBase.java:300) > > > at > > > org.geotools.xml.transform.TransformerBase.transform( > > TransformerBase.java:133) > > > at > > > org.geotools.xml.transform.TransformerBase.transform( > > TransformerBase.java:112) > > > at > > > org.geoserver.wfs.response.GetCapabilitiesResponse.write( > > GetCapabilitiesResponse.java:61) ... > > > 79 more Caused by: java.lang.NullPointerException at > > > org.geoserver.wfs.CapabilitiesTransformer$WFS1_ > > 1$CapabilitiesTranslator1_1.featureType(CapabilitiesTransformer.java:1572) > > > at > > > org.geoserver.wfs.CapabilitiesTransformer$WFS1_ > > 1$CapabilitiesTranslator1_1.featureTypes(CapabilitiesTransformer.java: > > 1421) > > > at > > > org.geoserver.wfs.CapabilitiesTransformer$WFS2_ > > 0$CapabilitiesTranslator2_0.featureTypeList(CapabilitiesTransformer.java: > > 2273) > > > at > > > org.geoserver.wfs.CapabilitiesTransformer$WFS2_ > > 0$CapabilitiesTranslator2_0.encode(CapabilitiesTransformer.java:2024) > > > at > > > org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse( > > TransformerBase.java:1026) > > > at > > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl. > > transformIdentity(TransformerImpl.java:668) > > > at > > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:737) > > > > > ... > > > 84 more looking at the source of the CapabilitiesTransformer near > > > line #1572 i see: > > > > > > > > > Envelope bbox = null; > > > bbox = featureType.getLatLonBoundingBox(); > > > > > > start("ows:WGS84BoundingBox"); > > > > > > element("ows:LowerCorner", bbox.getMinX() + " " + > > > bbox.getMinY()); element("ows:UpperCorner", bbox.getMaxX() + " " + > > > bbox.getMaxY()); > > > > > > end("ows:WGS84BoundingBox"); > > > > > > 1/ any ideas why bbox is sometimes null? > > > > > > 2/ does it make sense to check for null before emitting this > > > element? -- cheers; rsn
pgps0Sn_LFTji.pgp
Description: OpenPGP digital signature
------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
