Thanks for your reply. In your previous message, i can see indeed the line for create index. But i can't see the line for add a primary key. Is it possible to you to tell how do add the primary key? Because on my side i don't succeed in adding a primary key on my materilzed view thanks to folowing lines :
ALTER TABLE XXX ADD CONSTRAINT XXX PRIMARY KEY (gid); pg admin don't recognize ma view as a table. Thanks. Le mar. 10 août 2021 à 13:41, Bart Zwemmer | GIS Specialisten < b...@gisspecialisten.nl> a écrit : > Dear Laurant, > > > > Currently I am busy implementing Materialized Views for a client. In order > to have a unique ID, you need to add that to the materialized view: > > > > The materialized view needs a unique column to support concurrent > refreshing. That means you have to determine a “primary key” and create a > unique index: > > 1 > > 2 > > 3 > > 4 > > demo=# CREATE UNIQUE INDEX idx_grp ON mat_view (grp); > > CREATE INDEX > > demo=# REFRESH MATERIALIZED VIEW CONCURRENTLY mat_view; > > REFRESH MATERIALIZED VIEW > > > > > > This is taken from: > https://www.cybertec-postgresql.com/en/creating-and-refreshing-materialized-views-in-postgresql/ > > Which you might find useful. > > > > Kind regards, > > > > Bart > > > > *From:* celati Laurent <laurent.cel...@gmail.com> > *Sent:* Tuesday, 10 August 2021 13:15 > *To:* geoserver-users <geoserver-users@lists.sourceforge.net> > *Subject:* [Geoserver-users] wfs : load in qgis a postgis materialized > view > > > > Good morning, > > > > I succeed in loading into geoserver a Postgis materialized view. > > With qgis, no problem for display the data in WMS . > > But the data does not display with WFS. > > I paste below the log. Geoserver logs seems to deal with especially to : > "Caused by: java.io.IOException: Cannot do natural order without a primary > key, please add it or specify a manual sort over existing attributes". > > According to you, it would be the main reason explaining the issue? If yes > How to specify a manual sort order ? Or how to create a primary key on a > materialized view which might be recognized by geoserver ? > > Thanks a lot. > > > > *Please fond below QGIS log : * > > > > > > 2021-08-10T12:04:48 WARNING Le téléchargement des entités à > échoué: Error transferring > https://sig-geo-prd.andra.fr/geoserver/andra/wfs?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=andra:bdd_forages_ouvrages&TYPENAME=andra:bdd_forages_ouvrages&STARTINDEX=0&COUNT=1000000&SRSNAME=urn:ogc:def:crs:EPSG::2154&BBOX=1344789.26224076747894287,6375548.67891552019864321,2060610.88769835303537548,6698990.50836040545254946,urn:ogc:def:crs:EPSG::2154 > - server replied: > > > > *Please find below Geoserver log : * > > > > 2021-08-10 12:04:48,736 INFO [geoserver.wfs] - > Request: getServiceInfo > 2021-08-10 12:04:48,736 INFO [geoserver.wfs] - > Request: getFeature > service = WFS > version = 2.0.0 > baseUrl = https://sig-geo-prd.andra.fr/geoserver/ > count = 1000000 > outputFormat = application/gml+xml; version=3.2 > resolve = none > resolveDepth = * > resolveTimeout = 300 > resultType = results > startIndex = 0 > abstractQueryExpressionGroup[0] = > wfs:abstractQueryExpression=net.opengis.wfs20.impl.QueryTypeImpl@51ac097e > (handle: null) (abstractProjectionClause: null, abstractSelectionClause: [ > bbox ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, > 6375548.67891552 : 6698990.508360405] ], abstractSortingClause: null, > aliases: null, typeNames: [{andra}bdd_forages_ouvrages]) (featureVersion: > null, srsName: urn:ogc:def:crs:EPSG::2154, filter: null, propertyNames: > null, sortBy: null) > abstractQueryExpression[0]: > abstractSelectionClause = [ bbox > ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, 6375548.67891552 > : 6698990.508360405] ] > typeNames[0] = {andra}bdd_forages_ouvrages > srsName = urn:ogc:def:crs:EPSG::2154 > filter = [ bbox ReferencedEnvelope[1344789.2622407675 : > 2060610.887698353, 6375548.67891552 : 6698990.508360405] ] > 2021-08-10 12:04:48,736 INFO [geoserver.servlets] - OutputStream was > successfully aborted. > 2021-08-10 12:04:48,736 ERROR [geoserver.ows] - > java.lang.RuntimeException: Failed to get property: { > http://www.opengis.net/wfs/2.0}boundedBy > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:102) > at > org.geotools.xsd.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:220) > at org.geotools.xsd.impl.BindingWalker.walk(BindingWalker.java:186) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:65) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:45) > at > org.geotools.xsd.impl.BindingPropertyExtractor.properties(BindingPropertyExtractor.java:92) > at org.geotools.xsd.Encoder.encode(Encoder.java:988) > at org.geotools.xsd.Encoder.encode(Encoder.java:549) > at > org.geoserver.wfs.xml.GML32OutputFormat.encode(GML32OutputFormat.java:151) > at org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:314) > at > org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:195) > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:1030) > at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:269) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) > 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.doGet(FrameworkServlet.java:898) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) > 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:158) > 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:47) > 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:97) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) > 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:78) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.RuntimeException: java.io.IOException > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:165) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:52) > at > org.geotools.data.crs.ReprojectFeatureResults.openIterator(ReprojectFeatureResults.java:92) > at > org.geotools.feature.collection.AbstractFeatureCollection.features(AbstractFeatureCollection.java:65) > at > org.geotools.data.crs.ReprojectFeatureResults.getBounds(ReprojectFeatureResults.java:163) > at > org.geotools.feature.collection.DecoratingFeatureCollection.getBounds(DecoratingFeatureCollection.java:87) > at > org.geotools.feature.collection.DecoratingSimpleFeatureCollection.getBounds(DecoratingSimpleFeatureCollection.java:92) > at > org.geotools.wfs.bindings.WFSParsingUtils.FeatureCollectionType_getProperty(WFSParsingUtils.java:90) > at > org.geotools.wfs.v2_0.FeatureCollectionTypeBinding.getProperty(FeatureCollectionTypeBinding.java:100) > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:100) > ... 108 more > Caused by: java.io.IOException > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:627) > at > org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:619) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:163) > ... 117 more > Caused by: java.io.IOException: Cannot do natural order without a primary > key, please add it or specify a manual sort over existing attributes > at org.geotools.jdbc.JDBCDataStore.sort(JDBCDataStore.java:3518) > at org.geotools.jdbc.JDBCDataStore.selectSQL(JDBCDataStore.java:3354) > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:594) > ... 119 more > 2021-08-10 12:04:48,767 INFO [geoserver.wfs] - > Request: getServiceInfo > 2021-08-10 12:04:48,767 INFO [geoserver.wfs] - > Request: getFeature > service = WFS > version = 2.0.0 > baseUrl = https://sig-geo-prd.andra.fr/geoserver/ > count = 1000000 > outputFormat = application/gml+xml; version=3.2 > resolve = none > resolveDepth = * > resolveTimeout = 300 > resultType = results > startIndex = 0 > abstractQueryExpressionGroup[0] = > wfs:abstractQueryExpression=net.opengis.wfs20.impl.QueryTypeImpl@387c7f8c > (handle: null) (abstractProjectionClause: null, abstractSelectionClause: [ > bbox ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, > 6375548.67891552 : 6698990.508360405] ], abstractSortingClause: null, > aliases: null, typeNames: [{andra}bdd_forages_ouvrages]) (featureVersion: > null, srsName: urn:ogc:def:crs:EPSG::2154, filter: null, propertyNames: > null, sortBy: null) > abstractQueryExpression[0]: > abstractSelectionClause = [ bbox > ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, 6375548.67891552 > : 6698990.508360405] ] > typeNames[0] = {andra}bdd_forages_ouvrages > srsName = urn:ogc:def:crs:EPSG::2154 > filter = [ bbox ReferencedEnvelope[1344789.2622407675 : > 2060610.887698353, 6375548.67891552 : 6698990.508360405] ] > 2021-08-10 12:04:48,783 INFO [geoserver.servlets] - OutputStream was > successfully aborted. > 2021-08-10 12:04:48,783 ERROR [geoserver.ows] - > java.lang.RuntimeException: Failed to get property: { > http://www.opengis.net/wfs/2.0}boundedBy > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:102) > at > org.geotools.xsd.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:220) > at org.geotools.xsd.impl.BindingWalker.walk(BindingWalker.java:186) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:65) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:45) > at > org.geotools.xsd.impl.BindingPropertyExtractor.properties(BindingPropertyExtractor.java:92) > at org.geotools.xsd.Encoder.encode(Encoder.java:988) > at org.geotools.xsd.Encoder.encode(Encoder.java:549) > at > org.geoserver.wfs.xml.GML32OutputFormat.encode(GML32OutputFormat.java:151) > at org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:314) > at > org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:195) > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:1030) > at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:269) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) > 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.doGet(FrameworkServlet.java:898) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) > 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:158) > 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:47) > 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:97) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) > 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:78) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.RuntimeException: java.io.IOException > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:165) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:52) > at > org.geotools.data.crs.ReprojectFeatureResults.openIterator(ReprojectFeatureResults.java:92) > at > org.geotools.feature.collection.AbstractFeatureCollection.features(AbstractFeatureCollection.java:65) > at > org.geotools.data.crs.ReprojectFeatureResults.getBounds(ReprojectFeatureResults.java:163) > at > org.geotools.feature.collection.DecoratingFeatureCollection.getBounds(DecoratingFeatureCollection.java:87) > at > org.geotools.feature.collection.DecoratingSimpleFeatureCollection.getBounds(DecoratingSimpleFeatureCollection.java:92) > at > org.geotools.wfs.bindings.WFSParsingUtils.FeatureCollectionType_getProperty(WFSParsingUtils.java:90) > at > org.geotools.wfs.v2_0.FeatureCollectionTypeBinding.getProperty(FeatureCollectionTypeBinding.java:100) > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:100) > ... 108 more > Caused by: java.io.IOException > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:627) > at > org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:619) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:163) > ... 117 more > Caused by: java.io.IOException: Cannot do natural order without a primary > key, please add it or specify a manual sort over existing attributes > at org.geotools.jdbc.JDBCDataStore.sort(JDBCDataStore.java:3518) > at org.geotools.jdbc.JDBCDataStore.selectSQL(JDBCDataStore.java:3354) > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:594) > ... 119 more > 2021-08-10 12:04:48,814 INFO [geoserver.wfs] - > Request: getServiceInfo > 2021-08-10 12:04:48,814 INFO [geoserver.wfs] - > Request: getFeature > service = WFS > version = 2.0.0 > baseUrl = https://sig-geo-prd.andra.fr/geoserver/ > count = 1000000 > outputFormat = application/gml+xml; version=3.2 > resolve = none > resolveDepth = * > resolveTimeout = 300 > resultType = results > startIndex = 0 > abstractQueryExpressionGroup[0] = > wfs:abstractQueryExpression=net.opengis.wfs20.impl.QueryTypeImpl@2d9ce87 > (handle: null) (abstractProjectionClause: null, abstractSelectionClause: [ > bbox ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, > 6375548.67891552 : 6698990.508360405] ], abstractSortingClause: null, > aliases: null, typeNames: [{andra}bdd_forages_ouvrages]) (featureVersion: > null, srsName: urn:ogc:def:crs:EPSG::2154, filter: null, propertyNames: > null, sortBy: null) > abstractQueryExpression[0]: > abstractSelectionClause = [ bbox > ReferencedEnvelope[1344789.2622407675 : 2060610.887698353, 6375548.67891552 > : 6698990.508360405] ] > typeNames[0] = {andra}bdd_forages_ouvrages > srsName = urn:ogc:def:crs:EPSG::2154 > filter = [ bbox ReferencedEnvelope[1344789.2622407675 : > 2060610.887698353, 6375548.67891552 : 6698990.508360405] ] > 2021-08-10 12:04:48,814 INFO [geoserver.servlets] - OutputStream was > successfully aborted. > 2021-08-10 12:04:48,814 ERROR [geoserver.ows] - > java.lang.RuntimeException: Failed to get property: { > http://www.opengis.net/wfs/2.0}boundedBy > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:102) > at > org.geotools.xsd.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:220) > at org.geotools.xsd.impl.BindingWalker.walk(BindingWalker.java:186) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:65) > at > org.geotools.xsd.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:45) > at > org.geotools.xsd.impl.BindingPropertyExtractor.properties(BindingPropertyExtractor.java:92) > at org.geotools.xsd.Encoder.encode(Encoder.java:988) > at org.geotools.xsd.Encoder.encode(Encoder.java:549) > at > org.geoserver.wfs.xml.GML32OutputFormat.encode(GML32OutputFormat.java:151) > at org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:314) > at > org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:195) > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:1030) > at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:269) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) > 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.doGet(FrameworkServlet.java:898) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) > 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:158) > 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:47) > 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:97) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) > 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:78) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.RuntimeException: java.io.IOException > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:165) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:52) > at > org.geotools.data.crs.ReprojectFeatureResults.openIterator(ReprojectFeatureResults.java:92) > at > org.geotools.feature.collection.AbstractFeatureCollection.features(AbstractFeatureCollection.java:65) > at > org.geotools.data.crs.ReprojectFeatureResults.getBounds(ReprojectFeatureResults.java:163) > at > org.geotools.feature.collection.DecoratingFeatureCollection.getBounds(DecoratingFeatureCollection.java:87) > at > org.geotools.feature.collection.DecoratingSimpleFeatureCollection.getBounds(DecoratingSimpleFeatureCollection.java:92) > at > org.geotools.wfs.bindings.WFSParsingUtils.FeatureCollectionType_getProperty(WFSParsingUtils.java:90) > at > org.geotools.wfs.v2_0.FeatureCollectionTypeBinding.getProperty(FeatureCollectionTypeBinding.java:100) > at > org.geotools.xsd.impl.GetPropertyExecutor.visit(GetPropertyExecutor.java:100) > ... 108 more > Caused by: java.io.IOException > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:627) > at > org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:619) > at > org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:163) > ... 117 more > Caused by: java.io.IOException: Cannot do natural order without a primary > key, please add it or specify a manual sort over existing attributes > at org.geotools.jdbc.JDBCDataStore.sort(JDBCDataStore.java:3518) > at org.geotools.jdbc.JDBCDataStore.selectSQL(JDBCDataStore.java:3354) > at > org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:594) > ... 119 more > 2021-08-10 12:07:42,322 INFO [geoserver.wms] - > Request: getServiceInfo > 2021-08-10 12:07:42,354 INFO [geoserver.wms] - > Request: getLegendGraphic > BaseUrl = https://sig-geo-prd.andra.fr/geoserver/ > Env = {} > Exceptions = SE_XML > FeatureType = null > Format = image/png > Get = false > Height = 20 > Kvp = {STRICT=false, REQUEST=GetLegendGraphic, FORMAT=image/png, > VERSION=1.0.0, STYLE=line, WIDTH=20, HEIGHT=20} > Layers = [] > LegendOptions = {} > Legends = [LegendRequest [layer=, name= styleName=line, title=null, > legendInfo=null]] > Locale = null > RawKvp = {STRICT=false, REQUEST=GetLegendGraphic, FORMAT=image/png, > VERSION=1.0.0, STYLE=line, WIDTH=20, HEIGHT=20} > Request = GetLegendGraphic > RequestCharset = null > Scale = -1.0 > Strict = false > Transparent = false > Version = 1.0.0 > Width = 20 > Wms = org.geoserver.wms.WMS@577e21c0 > > *Disclaimer* > De informatie in dit e-mailbericht, inclusief eventuele bijlage(s) is > vertrouwelijk en uitsluitend bestemd voor de geadresseerde(n). Gebruik van > deze informatie door anderen dan de geadresseerde(n) is niet toegestaan. > Openbaarmaking, verspreiding en/of verstrekking van deze informatie aan > derden wordt niet gepermitteerd. Wanneer u dit bericht ten onrechte heeft > ontvangen, dient u de afzender hiervan per e-mail op de hoogte te brengen > en dit bericht te verwijderen. >
_______________________________________________ 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