I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."
Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3
Here is the view definition. (The returned data looks fine from within
pgAdmin.)
CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT obs.vehicleid, st_makeline(obs.geom) AS st_makeline
FROM ( SELECT v_truck_obs.vehicleid, v_truck_obs.geom
FROM v_truck_obs
WHERE v_truck_obs.datestamp > '2008-02-13 00:00:00'::timestamp
without time zone
ORDER BY v_truck_obs.datestamp) obs
GROUP BY obs.vehicleid
ORDER BY obs.vehicleid;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';
The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"
Here is the geoserver log...
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [geoserver.action] - form
bean:org.vfny.geoserver.form.data.TypesEditorForm
29 Apr 17:48:52 DEBUG [geoserver.action] - TypesEditorAction is Generate
29 Apr 17:48:52 DEBUG [geoserver.action] - BBOX: Generate
29 Apr 17:48:52 DEBUG [data.property] - can't process parameters
java.io.IOException: Parameter directory is required:Directory containting
property files
at
org.geotools.data.DataStoreFactorySpi$Param.lookUp(DataStoreFactorySpi.java:392)
at
org.geotools.data.property.PropertyDataStoreFactory.directoryLookup(PropertyDataStoreFactory.java:187)
at
org.geotools.data.property.PropertyDataStoreFactory.canProcess(PropertyDataStoreFactory.java:156)
at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:90)
at
org.vfny.geoserver.util.DataStoreUtils.getDataStore(DataStoreUtils.java:62)
at
org.vfny.geoserver.util.DataStoreUtils.acquireDataStore(DataStoreUtils.java:51)
at
org.vfny.geoserver.config.DataStoreConfig.findDataStore(DataStoreConfig.java:330)
at
org.vfny.geoserver.action.data.TypesEditorAction.executeBBox(TypesEditorAction.java:219)
at
org.vfny.geoserver.action.data.TypesEditorAction.execute(TypesEditorAction.java:132)
at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:101)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:303)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [geoserver.action] - calculating bbox for their
dataset
29 Apr 17:48:53 DEBUG [data.jdbc] - calling sql builder with filter
Filter.INCLUDE
29 Apr 17:48:53 DEBUG [data.jdbc] - sql is SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - About to execute query: SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:58 DEBUG [geoserver.action] - FeatureType 'v_vehicle_lines' has
a null bounding box
--
View this message in context: http://www.nabble.com/FeatureType-has-a-NULL-extent-tp16971524p16971524.html
Sent from the GeoServer - User mailing list archive at Nabble.com.