Hi Stefano,
Yes, it is kind of stange. Everything works except geometry filter.
Are you using the same mapping you posted a few mails ago? Yes.
Are you able to query nested non-geometry properties? Yes.
Two more questions:
1) do I understand correctly that there is a 1:1 relationship between the
GPS table and the G table? If that is the case, why not merge them into a
single table, or at least create a view? That would save you from configuring
feature chaining in app-schema...
It’s one to many relationship. Table A -> Bs, B->Cs and C->Ds …, and the
geometry is in D. Not sure if it will work if everything in one VERY big table.
2) you are mapping a column containing point geometries (LONGLAT) to a
gml:LinearRing geometry... that doesn't seem right?
It doesn’t seem right, but it works if do BBOX on this ‘feature’ alone.
Regarding the issue with custom defined geometry types, derived from GML types
(i.e. aixm:SurfaceType extending gml:SurfaceType), as suggested in the thread I
already cited
(http://osgeo-org.1560.x6.nabble.com/App-schema-How-to-map-Oracle-Geometry-into-GML-td4984781.html),
you may need to provide your own custom bindings... something I've never tried
myself.
Here is the stack trace:
17 Sep 12:12:00 INFO [org.geotools.referencing.factory] - Disposing class
org.vfny.geoserver.crs.GeoserverCustomWKTFactory backing store
17 Sep 12:12:00 INFO [org.geotools.referencing.factory] - Disposing class
org.vfny.geoserver.crs.GeoserverOverridingWKTFactory backing store
17 Sep 12:24:19 INFO [org.geoserver.wfs] -
Request: getServiceInfo
17 Sep 12:24:19 DEBUG [org.geotools.xml] - No schemaLocation found, using
'http://www.opengis.net/wfs/2.0
jar:file:/C:/Users/J44571/.m2/repository/org/geotools/xsd/gt-xsd-wfs/15-SNAPSHOT/gt-xsd-wfs-15-SNAPSHOT.jar!/org/geotools/wfs/v2_0/wfs.xsd
17 Sep 12:24:19 DEBUG [org.geotools.xml] - Found override for
http://www.opengis.net/wfs/2.0:
jar:file:/C:/Users/J44571/.m2/repository/org/geotools/xsd/gt-xsd-wfs/15-SNAPSHOT/gt-xsd-wfs-15-SNAPSHOT.jar!/org/geotools/wfs/v2_0/wfs.xsd
==>
jar:file:/C:/Users/J44571/.m2/repository/org/geotools/xsd/gt-xsd-wfs/15-SNAPSHOT/gt-xsd-wfs-15-SNAPSHOT.jar!/org/geotools/wfs/v2_0/wfs.xsd
17 Sep 12:24:27 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 12:24:27 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 12:24:34 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 12:24:34 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 12:24:37 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 12:24:37 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 12:24:38 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 12:24:38 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 12:36:12 DEBUG [org.geotools.util] - InterpolationConverterFactory can
be applied from Strings to Interpolation only.
17 Sep 12:36:15 DEBUG [org.geotools.util] - CRSConverterFactory can be applied
from Strings to CRS only.
17 Sep 12:36:18 DEBUG [org.geotools.xml] - [ class
org.geotools.geometry.jts.LiteCoordinateSequence ] is not of type class
[Ljava.lang.Double;
17 Sep 12:43:37 DEBUG [org.geotools.util] - InterpolationConverterFactory can
be applied from Strings to Interpolation only.
17 Sep 12:43:37 DEBUG [org.geotools.util] - CRSConverterFactory can be applied
from Strings to CRS only.
17 Sep 12:43:37 DEBUG [org.geotools.xml] - [ class
org.geotools.geometry.jts.LiteCoordinateSequence ] is not of type class
[Ljava.lang.Double;
17 Sep 13:03:39 INFO [org.geoserver.wfs] -
Request: getFeature
service = WFS
version = 2.0.0
baseUrl = http://localhost:8080/geoserver/
outputFormat = gml3
resolve = none
resolveDepth = *
resolveTimeout = 300
resultType = results
abstractQueryExpressionGroup[0] =
wfs:abstractQueryExpression=net.opengis.wfs20.impl.QueryTypeImpl@5ea4d0f1
(handle: null) (abstractProjectionClause: null, abstractSelectionClause: [
aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm:AirspaceGeometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/aixm:horizontalProjection/aixm:Surface/gml:polygonPatches/gml:PolygonPatch/gml:exterior/gml:LinearRing
bbox POLYGON ((33.49 -99, 33.49 -78, 55.59 -78, 55.59 -99, 33.49 -99)) ],
abstractSortingClause: null, aliases: null, typeNames:
[{http://www.aixm.aero/schema/5.1}Airspace]) (featureVersion: null, srsName:
null, filter: null, propertyNames: null, sortBy: null)
abstractQueryExpression[0]:
abstractSelectionClause = [
aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm:AirspaceGeometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/aixm:horizontalProjection/aixm:Surface/gml:polygonPatches/gml:PolygonPatch/gml:exterior/gml:LinearRing
bbox POLYGON ((33.49 -99, 33.49 -78, 55.59 -78, 55.59 -99, 33.49 -99)) ]
typeNames[0] = {http://www.aixm.aero/schema/5.1}Airspace
filter = [
aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm:AirspaceGeometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/aixm:horizontalProjection/aixm:Surface/gml:polygonPatches/gml:PolygonPatch/gml:exterior/gml:LinearRing
bbox POLYGON ((33.49 -99, 33.49 -78, 55.59 -78, 55.59 -99, 33.49 -99)) ]
17 Sep 13:03:42 DEBUG [org.geotools.util] - InterpolationConverterFactory can
be applied from Strings to Interpolation only.
17 Sep 13:03:42 DEBUG [org.geotools.util] - CRSConverterFactory can be applied
from Strings to CRS only.
17 Sep 13:04:21 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 13:04:21 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 13:04:32 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 13:04:32 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 13:04:32 TRACE [org.geotools.factory] - ENTRY (GeometryFactory,
JTS_GEOMETRY_FACTORY)
17 Sep 13:04:32 TRACE [org.geotools.factory] - RETURN (GeometryFactory,
JTS_GEOMETRY_FACTORY): found implementation GeometryFactory.
17 Sep 13:04:35 DEBUG [org.geotools.jdbc] - CREATE CONNECTION
17 Sep 13:04:38 DEBUG [org.geotools.jdbc] - CLOSE CONNECTION
17 Sep 13:04:38 ERROR [org.geoserver.ows] -
java.lang.RuntimeException: java.io.IOException
at
org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:176)
at
org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:58)
at
org.geotools.data.complex.DataAccessMappingFeatureIterator.initialiseSourceFeatures(DataAccessMappingFeatureIterator.java:397)
at
org.geotools.data.complex.AbstractMappingFeatureIterator.<init>(AbstractMappingFeatureIterator.java:230)
at
org.geotools.data.complex.DataAccessMappingFeatureIterator.<init>(DataAccessMappingFeatureIterator.java:141)
at
org.geotools.data.complex.MappingFeatureIteratorFactory.getInstance(MappingFeatureIteratorFactory.java:222)
at
org.geotools.data.complex.MappingFeatureCollection.features(MappingFeatureCollection.java:173)
at org.geotools.xml.Encoder.encode(Encoder.java:1056)
at org.geotools.xml.Encoder.encode(Encoder.java:609)
at
org.geoserver.wfs.xml.GML3OutputFormat.encode(GML3OutputFormat.java:302)
at
org.geoserver.wfs.xml.GML3OutputFormat.complexFeatureStreamIntercept(GML3OutputFormat.java:325)
at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:277)
at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:196)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:996)
at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:279)
at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
at
org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
at
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:87)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: java.io.IOException
at
org.geotools.jdbc.JoiningJDBCFeatureSource.getJoiningReaderInternal(JoiningJDBCFeatureSource.java:933)
at
org.geotools.jdbc.JoiningJDBCFeatureSource.getReaderInternal(JoiningJDBCFeatureSource.java:941)
at
org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:634)
at
org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:173)
... 89 more
Caused by: java.lang.UnsupportedOperationException: Expecting a feature to
apply filter, but found: SimpleFeatureTypeImpl A_AIRSPACE_WT identified extends
Feature(UUID:UUID,CODESPACE:CODESPACE,REC_ID:REC_ID)
at
org.geotools.filter.NestedAttributeExpression.evaluate(NestedAttributeExpression.java:90)
at
org.geotools.data.jdbc.FilterToSQL.visitBinarySpatialOperator(FilterToSQL.java:1001)
at org.geotools.data.jdbc.FilterToSQL.visit(FilterToSQL.java:936)
at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:220)
at org.geotools.data.jdbc.FilterToSQL.encode(FilterToSQL.java:248)
at
org.geotools.data.jdbc.FilterToSQL.encodeToString(FilterToSQL.java:277)
at
org.geotools.jdbc.JoiningJDBCFeatureSource.selectSQL(JoiningJDBCFeatureSource.java:601)
at
org.geotools.jdbc.JoiningJDBCFeatureSource.selectSQLPS(JoiningJDBCFeatureSource.java:792)
at
org.geotools.jdbc.JoiningJDBCFeatureSource.getJoiningReaderInternal(JoiningJDBCFeatureSource.java:920)
... 92 more
Thanks,
Wen
From: Stefano Costa [mailto:stefano.co...@geo-solutions.it]
Sent: Thursday, September 17, 2015 11:59 AM
To: Yin, Wentao (IS) (Contr)
Cc: geoserver-users
Subject: Re: EXT :Re: [Geoserver-users] BBOX filter on chained features
Hi Wen,
the error seems strange, do you have a full stack trace?
Are you using the same mapping you posted a few mails ago? Are you able to
query nested non-geometry properties?
Two more questions:
1) do I understand correctly that there is a 1:1 relationship between the GPS
table and the G table? If that is the case, why not merge them into a single
table, or at least create a view? That would save you from configuring feature
chaining in app-schema...
2) you are mapping a column containing point geometries (LONGLAT) to a
gml:LinearRing geometry... that doesn't seem right?
Regarding the issue with custom defined geometry types, derived from GML types
(i.e. aixm:SurfaceType extending gml:SurfaceType), as suggested in the thread I
already cited
(http://osgeo-org.1560.x6.nabble.com/App-schema-How-to-map-Oracle-Geometry-into-GML-td4984781.html),
you may need to provide your own custom bindings... something I've never tried
myself.
On Wed, Sep 16, 2015 at 11:01 PM, Yin, Wentao (IS) (Contr)
<wentao....@ngc.com<mailto:wentao....@ngc.com>> wrote:
Thanks! Stefano,
For AIXM, I always got an error like SimpleFeatureTypeImpl AIRSPACE identified
extends Feature(UUID:UUID,CODESPACE:CODESPACE,REC_ID:REC_ID)
When using BBOX on nested feature even if the top feature Airspace is a FEATURE.
Wen
------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users