[Geoserver-devel] PostGIS connection

Hi folks,

I'm trying to add a FeatureType by using PostGIS as datastore. I created a
Postgis database (named world) with 2 tables (cities, countries).
All seems be working properly when I test it using psql from the command
line.

However, when I start the server, Geoserver is unable to create the
datastore... Here is what I got from the log file:

2143 [FIN] org.geotools.data.postgis.PostgisConnectionFactory - looking up
pool key jdbc:postgresql://localhost:5432/worldpostgrespostgres
2143 [FIN] org.geotools.data.postgis.PostgisConnectionFactory - pool is
null
org.vfny.geoserver.config.ConfigurationException: Error obtaining schema for
topp:cities: can't create the datastore local.postgis:
java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.vfny.geoserver.config.FeatureTypeConfig.<init>(FeatureTypeConfig.java:14
8)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
539)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
530)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
530)
  at
org.vfny.geoserver.config.CatalogConfig.<init>(CatalogConfig.java:207)
  at
org.vfny.geoserver.config.ServerConfig.load(ServerConfig.java:310)
  at
org.vfny.geoserver.config.ServerConfig.<init>(ServerConfig.java:88)
  at
org.vfny.geoserver.config.ServerConfig.load(ServerConfig.java:205)
  at org.vfny.geoserver.servlets.FreefsLog.init(FreefsLog.java:64)
  at javax.servlet.GenericServlet.init(GenericServlet.java:258)
  at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:93
5)
  at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
  at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3421)
  at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3609)
  at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8
21)
  at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
  at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
  at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j
ava:307)
  at
org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
  at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:559
)
  at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:401)
  at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
  at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
  at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:166)
  at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
  at
org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
  at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
  at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
  at
org.apache.catalina.core.StandardService.start(StandardService.java:497)
  at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
  at
org.apache.catalina.startup.CatalinaService.start(CatalinaService.java:273)
  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:324)
  at
org.apache.catalina.startup.BootstrapService.start(BootstrapService.java:245
)
  at
org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:307)
Caused by: org.geotools.data.DataSourceException: can't create the datastore
local.postgis: java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.vfny.geoserver.config.DataStoreConfig.getDataStore(DataStoreConfig.java:
218)
  at
org.vfny.geoserver.config.FeatureTypeConfig.getRealFeatureSource(FeatureType
Config.java:352)
  at
org.vfny.geoserver.config.FeatureTypeConfig.getSchema(FeatureTypeConfig.java
:482)
  at
org.vfny.geoserver.config.FeatureTypeConfig.<init>(FeatureTypeConfig.java:14
6)
  ... 36 more
Caused by: java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.geotools.data.postgis.PostgisConnectionFactory.getConnectionPool(Postgis
ConnectionFactory.java:214)
  at
org.geotools.data.postgis.PostgisConnectionFactory.getConnectionPool(Postgis
ConnectionFactory.java:231)
  at
org.geotools.data.postgis.PostgisDataStoreFactory.createDataStore(PostgisDat
aStoreFactory.java:125)
  at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:78)
  at
org.vfny.geoserver.config.DataStoreConfig.getDataStore(DataStoreConfig.java:
215)
  ... 39 more

What is wrong with my configuration? I'm using geoserver 1.1.0 and Postgis
0.8 with GEOS and Proj4

Thanks in advance for your support.

Regards,

Marc-André

We've actually been discussing this problem lately. It looks like you
have a jdbcPostgres driver on your classpath that is not the one included
with geoserver. We had to patch the driver to support charSets with
jdbc2.optional and jdbc3, so you need the one that is included with
geoserver. Unfortunately it is now out of date, as postgres 7.4 needs a
new jdbc driver to do transactions. So if you use the jar in
geoserver/lib it should work for most operations. And if you wait a few
days I can get you a jar that will do transactions with 7.4. You also
might try commenting out the charSet parameter, I _think_ that if it is
null then that method is not called.

Chris

On Fri, 6 Feb 2004, "Morin, Marc-André" wrote:

Hi folks,

I'm trying to add a FeatureType by using PostGIS as datastore. I created a
Postgis database (named world) with 2 tables (cities, countries).
All seems be working properly when I test it using psql from the command
line.

However, when I start the server, Geoserver is unable to create the
datastore... Here is what I got from the log file:

2143 [FIN] org.geotools.data.postgis.PostgisConnectionFactory - looking up
pool key jdbc:postgresql://localhost:5432/worldpostgrespostgres
2143 [FIN] org.geotools.data.postgis.PostgisConnectionFactory - pool is
null
org.vfny.geoserver.config.ConfigurationException: Error obtaining schema for
topp:cities: can't create the datastore local.postgis:
java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.vfny.geoserver.config.FeatureTypeConfig.<init>(FeatureTypeConfig.java:14
8)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
539)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
530)
  at
org.vfny.geoserver.config.CatalogConfig.loadFeatureTypes(CatalogConfig.java:
530)
  at
org.vfny.geoserver.config.CatalogConfig.<init>(CatalogConfig.java:207)
  at
org.vfny.geoserver.config.ServerConfig.load(ServerConfig.java:310)
  at
org.vfny.geoserver.config.ServerConfig.<init>(ServerConfig.java:88)
  at
org.vfny.geoserver.config.ServerConfig.load(ServerConfig.java:205)
  at org.vfny.geoserver.servlets.FreefsLog.init(FreefsLog.java:64)
  at javax.servlet.GenericServlet.init(GenericServlet.java:258)
  at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:93
5)
  at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
  at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3421)
  at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3609)
  at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8
21)
  at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
  at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
  at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j
ava:307)
  at
org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
  at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:559
)
  at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:401)
  at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
  at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
  at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:166)
  at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
  at
org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
  at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
  at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
  at
org.apache.catalina.core.StandardService.start(StandardService.java:497)
  at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
  at
org.apache.catalina.startup.CatalinaService.start(CatalinaService.java:273)
  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:324)
  at
org.apache.catalina.startup.BootstrapService.start(BootstrapService.java:245
)
  at
org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:307)
Caused by: org.geotools.data.DataSourceException: can't create the datastore
local.postgis: java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.vfny.geoserver.config.DataStoreConfig.getDataStore(DataStoreConfig.java:
218)
  at
org.vfny.geoserver.config.FeatureTypeConfig.getRealFeatureSource(FeatureType
Config.java:352)
  at
org.vfny.geoserver.config.FeatureTypeConfig.getSchema(FeatureTypeConfig.java
:482)
  at
org.vfny.geoserver.config.FeatureTypeConfig.<init>(FeatureTypeConfig.java:14
6)
  ... 36 more
Caused by: java.lang.NoSuchMethodError:
org.postgresql.jdbc2.optional.ConnectionPool.setEncoding(Ljava/lang/String;)
V
  at
org.geotools.data.postgis.PostgisConnectionFactory.getConnectionPool(Postgis
ConnectionFactory.java:214)
  at
org.geotools.data.postgis.PostgisConnectionFactory.getConnectionPool(Postgis
ConnectionFactory.java:231)
  at
org.geotools.data.postgis.PostgisDataStoreFactory.createDataStore(PostgisDat
aStoreFactory.java:125)
  at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:78)
  at
org.vfny.geoserver.config.DataStoreConfig.getDataStore(DataStoreConfig.java:
215)
  ... 39 more

What is wrong with my configuration? I'm using geoserver 1.1.0 and Postgis
0.8 with GEOS and Proj4

Thanks in advance for your support.

Regards,

Marc-André

-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--