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

Reply via email to