Hi list members!
I'm developing a web map application with several layers. Everything goes
fine while the views used to feed the featureTypes' datasources are with at
least one tuple. When the base is empty, GeoServe starts to log exceptions
warning that the featureTypes associated with the empty views weren't
created.
The big trouble occurs when some layers are with its datasource with tuples
and others not. In this case the WFS service with a CQL filter fails,
throwing a exception saying that wasn't found the geometry column. This
affect the normal behaviour of my application...
What do I when the application starts in the first time? How can I
workarround this?
Thanks in advanced.
José
--
View this message in context: http://www.nabble.com/How-can-I-create-FeatureTypes-from-empty-tables-views-tp24959194p24959194.html
Sent from the GeoServer - User mailing list archive at Nabble.com.
Anyone knows a way to workarround this?
zé wrote:
Hi list members!
I'm developing a web map application with several layers. Everything goes
fine while the views used to feed the featureTypes' datasources are with
at least one tuple. When the base is empty, GeoServe starts to log
exceptions warning that the featureTypes associated with the empty views
weren't created.
The big trouble occurs when some layers are with its datasource with
tuples and others not. In this case the WFS service with a CQL filter
fails, throwing a exception saying that wasn't found the geometry column.
This affect the normal behaviour of my application...
What do I when the application starts in the first time? How can I
workarround this?
Thanks in advanced.
José
--
View this message in context: http://www.nabble.com/How-can-I-create-FeatureTypes-from-empty-tables-views-tp24959194p24974531.html
Sent from the GeoServer - User mailing list archive at Nabble.com.
What kind of datastore are you trying to connect to? (ie, postgis, arcsde, shapefile, etc?)
that seems like a bug in the underlying datastore implementation.
Can you send a stack trace from the logs?
Cheers,
Gabriel
zé wrote:
Anyone knows a way to workarround this?
zé wrote:
Hi list members!
I'm developing a web map application with several layers. Everything goes
fine while the views used to feed the featureTypes' datasources are with
at least one tuple. When the base is empty, GeoServe starts to log
exceptions warning that the featureTypes associated with the empty views
weren't created.
The big trouble occurs when some layers are with its datasource with
tuples and others not. In this case the WFS service with a CQL filter
fails, throwing a exception saying that wasn't found the geometry column.
This affect the normal behaviour of my application...
What do I when the application starts in the first time? How can I
workarround this?
Thanks in advanced.
José
--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.
Hi Gabriel!
Thanks for the answer.
I'm using a PostGIS DataStore connected to views in the database. The
following stack trace occurs when GeoServer starts with some PostGIS
DataStore empty:
WARN [data.jdbc] - Error building attribute type. The column will be ignored
org.geotools.data.DataSourceException: no geometry found in the
GEOMETRY_COLUMNS table for vw_gisrh_rel_irrigacao_controle_000008 of the
postgis install. A row for the_geom is required for geotools to work
correctly
at
org.geotools.data.postgis.PostgisDataStore.getGeometryAttribute(PostgisDataStore.java:1123)
at
org.geotools.data.postgis.PostgisDataStore.buildAttributeType(PostgisDataStore.java:994)
at
org.geotools.data.jdbc.JDBC1DataStore.buildSchema(JDBC1DataStore.java:1201)
at
org.geotools.data.postgis.PostgisDataStore.buildSchema(PostgisDataStore.java:671)
at
org.geotools.data.jdbc.FeatureTypeHandler.getFeatureTypeInfo(FeatureTypeHandler.java:198)
at
org.geotools.data.jdbc.FeatureTypeHandler.getSchema(FeatureTypeHandler.java:166)
at
org.geotools.data.jdbc.JDBC1DataStore.getSchema(JDBC1DataStore.java:338)
at
org.geotools.data.postgis.PostgisDataStore.getSchema(PostgisDataStore.java:1951)
at
org.geoserver.catalog.util.LegacyCatalogImporter.readFeatureType(LegacyCatalogImporter.java:503)
at
org.geoserver.catalog.util.LegacyCatalogImporter.imprt(LegacyCatalogImporter.java:173)
at
org.geoserver.config.GeoServerLoader.initialize(GeoServerLoader.java:119)
at
org.geoserver.config.GeoServerLoader.postProcessBeforeInitialization(GeoServerLoader.java:81)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1330)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at
org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:495)
at
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:162)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at
org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:495)
at
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:162)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
And when a WFS with a CQL filter is called, this stack trace is thrown:
org.geoserver.wfs.WFSException: Illegal property name: the_geom
at org.geoserver.wfs.GetFeature$1.visit(GetFeature.java:246)
at
org.geotools.filter.AttributeExpressionImpl.accept(AttributeExpressionImpl.java:280)
at
org.geotools.filter.visitor.AbstractFilterVisitor.visit(AbstractFilterVisitor.java:282)
at
org.geotools.filter.visitor.AbstractFilterVisitor.visit(AbstractFilterVisitor.java:339)
at
org.geotools.filter.spatial.IntersectsImpl.accept(IntersectsImpl.java:58)
at
org.geotools.filter.visitor.AbstractFilterVisitor.visit(AbstractFilterVisitor.java:404)
at
org.geotools.filter.visitor.AbstractFilterVisitor.visit(AbstractFilterVisitor.java:415)
at org.geotools.filter.AndImpl.accept(AndImpl.java:61)
at org.geoserver.wfs.GetFeature.run(GetFeature.java:254)
at
org.geoserver.wfs.DefaultWebFeatureService.getFeature(DefaultWebFeatureService.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.geoserver.ows.util.EMFLogger.invoke(EMFLogger.java:51)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy14.getFeature(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.geoserver.security.OperationSecurityInterceptor.invoke(OperationSecurityInterceptor.java:41)
at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:583)
at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:212)
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:875)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
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:275)
at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Best regards.
José
--
View this message in context: http://www.nabble.com/How-can-I-create-FeatureTypes-from-empty-tables-views-tp24959194p24998570.html
Sent from the GeoServer - User mailing list archive at Nabble.com.
zé ha scritto:
Hi Gabriel!
Thanks for the answer.
I'm using a PostGIS DataStore connected to views in the database. The
following stack trace occurs when GeoServer starts with some PostGIS
DataStore empty:
WARN [data.jdbc] - Error building attribute type. The column will be ignored
org.geotools.data.DataSourceException: no geometry found in the
GEOMETRY_COLUMNS table for vw_gisrh_rel_irrigacao_controle_000008 of the
postgis install. A row for the_geom is required for geotools to work
It seems the metadata in the GEOMETRY_COLUMNS table is missing.
Add it manually (it would have been added automatically if you used the addGeometryColumn function) and you should be good.
Cheers
Andrea
--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.
Hi Andrea!
Thanks for the answer.
I'm using a view to feed the DataSource, in the select statement of the
view, I refer to the the_geom column, see that:
-----------------------------
CREATE OR REPLACE VIEW vw_gisrh_rel_captacao_000001 AS
SELECT rh.id_rh AS oid, rh.id_rh, rh.nome, rh.latitude, rh.longitude,
rh.the_geom, -- the geometry column
c.id_captacao, c.tipo, c.tipo_outro, p.id_comite, p.id_projeto
FROM tb_gisrh_projeto p
JOIN tb_gisrh_a_ficha f ON f.id_projeto = p.id_projeto
JOIN tb_gisrh_rh rh ON rh.id_rh = f.id_rh
JOIN tb_gisrh_captacao c ON c.id_captacao = f.id_captacao
WHERE (c.tipo & 1) > 0;
---------------------------
I tried out use the AddGeometryColumn function but it works only for tables.
I saw the geometry_columns table structure but I get stuck in the OID field.
What value I must put there? Could you tell me how add manually the metadata
into the geometry_columns table?
Best regards.
José
--
View this message in context: http://www.nabble.com/How-can-I-create-FeatureTypes-from-empty-tables-views-tp24959194p25006019.html
Sent from the GeoServer - User mailing list archive at Nabble.com.
zé ha scritto:
Hi Andrea!
Thanks for the answer.
I'm using a view to feed the DataSource, in the select statement of the
view, I refer to the the_geom column, see that:
-----------------------------
CREATE OR REPLACE VIEW vw_gisrh_rel_captacao_000001 AS SELECT rh.id_rh AS oid, rh.id_rh, rh.nome, rh.latitude, rh.longitude,
rh.the_geom, -- the geometry column
c.id_captacao, c.tipo, c.tipo_outro, p.id_comite, p.id_projeto
FROM tb_gisrh_projeto p
JOIN tb_gisrh_a_ficha f ON f.id_projeto = p.id_projeto
JOIN tb_gisrh_rh rh ON rh.id_rh = f.id_rh
JOIN tb_gisrh_captacao c ON c.id_captacao = f.id_captacao
WHERE (c.tipo & 1) > 0;
---------------------------
I tried out use the AddGeometryColumn function but it works only for tables.
I saw the geometry_columns table structure but I get stuck in the OID field.
What value I must put there? Could you tell me how add manually the metadata
into the geometry_columns table?
Ah, I see. the geometry_column is just another table, so you just do an insert specifying the required data. Here is an example table from one
of my test databases:
select * from geometry_columns;
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type
-----------------+----------------+---------------------+-------------------+-----------------+---------+-----------------
| public | pgstates | the_geom | 2 | 4326 | MULTIPOLYGON
| public | tasmania | the_geom | 2 | -1 | MULTIPOLYGON
| public | loop_demo_3d_points | the_geom | 3 | 4326 | POINT
| public | loop_demo_3d_line | the_geom | 3 | 4326 | LINESTRING
| public | 3dfloor | the_geom | 3 | 1002098 | POLYGON
| public | gshhs_land | the_geom
Hope this helps
Cheers
Andrea
--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.
Hi Andrea!
It works fine! I was worry with this supposed issue, hehehe. So GeoServer
lookups into geometry_column table for metadata discovery when using a
PostGIS DataSource... Right!
Thank you very much!
José.
--
View this message in context: http://www.nabble.com/How-can-I-create-FeatureTypes-from-empty-tables-views-tp24959194p25006960.html
Sent from the GeoServer - User mailing list archive at Nabble.com.