[Geoserver-users] Creating datastore in GeoServer1.4.0: PSQLException class org.postgis.PGbox2d does not implement org.postgresql.util.PGobject

Hi,

I just downloaded GeoServer 1.4.0 and tried to create a new PostgreSQL datastore. However, when I submitted, I got the following exception:

Connection failed:org.postgresql.util.PSQLException: The class class org.postgis.PGbox2d does not implement org.postgresql.util.PGobject.

I am using PostgreSQL 8.0 and PostGIS 1.0.4-1. Previously I was using GeoServer 1.3.0-RC2 with these same versions without this problem, so I am not sure what is causing it with 1.4.0. I have tried the same configuration on two different machines and the results are the same.

Please enlighten what the reason could be. Thanks.

Regards,
Wai See

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the message
from your system; please do not copy or use it for any purpose, nor disclose
its contents to any other person. Thank you.]
---ST Electronics Group---


No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.25/593 - Release Date: 12/19/2006

Lee Wai See ha scritto:

Hi,

I just downloaded GeoServer 1.4.0 and tried to create a new PostgreSQL datastore. However, when I submitted, I got the following exception:

Connection failed:org.postgresql.util.PSQLException: The class class org.postgis.PGbox2d does not implement org.postgresql.util.PGobject.

I am using PostgreSQL 8.0 and PostGIS 1.0.4-1. Previously I was using GeoServer 1.3.0-RC2 with these same versions without this problem, so I am not sure what is causing it with 1.4.0. I have tried the same configuration on two different machines and the results are the same.

Strange, these classes are included in the postgres driver, and I do
not have a PGbox2d around at all, just PGbox3d (in my postgresql
jdbc driver I mean).
A full stack trace would be nice, but it seems to me you're having
some kind of conflict between your postgres install and the jdbc
driver we're shipping. Or, have you replaced the driver with a
different one, or maybe put a different driver in your web containers
shared lib?

Cheers
Andrea

Hi,

Andrea, thanks for your reply.

Strange, these classes are included in the postgres driver, and I do
not have a PGbox2d around at all, just PGbox3d (in my postgresql
jdbc driver I mean).

We do have a PGbox2d found in our postgis_1.0.0.jar, but not postgresql jdbc
driver.

A full stack trace would be nice, but it seems to me you're having
some kind of conflict between your postgres install and the jdbc
driver we're shipping. Or, have you replaced the driver with a
different one, or maybe put a different driver in your web containers
shared lib?

We are certain that we did not replace any of our drivers anywhere. Here is
the full stack trace:

form connection params { loose bbox=true, user="postgres", passwd="xxx",
wkb enabled=true, host="localhost", schema="public", port=5432,
database="xxx", dbtype="postgis"}
1777753 [SEVERE] org.geotools.data.postgis.PostgisDataStore - Could not
obtain DBInfo object
1777753 [SEVERE] org.geotools.data.postgis.PostgisDataStore - Could not
obtain PostgisDBInfo
org.geotools.data.DataSourceException: Connection
failed:org.postgresql.util.PSQLException: The class class
org.postgis.PGbox2d does not implement org.postgresql.util.PGobject.
  at
org.geotools.data.jdbc.JDBC1DataStore.getConnection(JDBC1DataStore.java:1035
)
  at
org.geotools.data.postgis.PostgisDataStore.getTypeNames(PostgisDataStore.jav
a:313)
  at
org.vfny.geoserver.action.data.DataDataStoresEditorAction.execute(DataDataSt
oresEditorAction.java:144)
  at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:98)
  at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
  at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
  at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterE
ncodingFilter.java:122)
  at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:186)
  at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
  at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
  at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
  at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
  at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
  at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
  at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118
)
  at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
  at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
  at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
  at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:683)
  at java.lang.Thread.run(Thread.java:534)
Caused by: org.postgresql.util.PSQLException: The class class
org.postgis.PGbox2d does not implement org.postgresql.util.PGobject.
  at
org.postgresql.jdbc2.TypeInfoCache.addDataType(TypeInfoCache.java:110)
  at
org.postgresql.jdbc2.AbstractJdbc2Connection.addDataType(AbstractJdbc2Connec
tion.java:429)
  at
org.postgresql.jdbc2.AbstractJdbc2Connection.initObjectTypes(AbstractJdbc2Co
nnection.java:466)
  at
org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.
java:136)
  at
org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.
java:30)
  at
org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24)
  at org.postgresql.Driver.makeConnection(Driver.java:369)
  at org.postgresql.Driver.connect(Driver.java:245)
  at java.sql.DriverManager.getConnection(DriverManager.java:512)
  at java.sql.DriverManager.getConnection(DriverManager.java:171)
  at
org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:82
)
  at
org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:65
)
  at
org.postgresql.ds.PGConnectionPoolDataSource.getPooledConnection(PGConnectio
nPoolDataSource.java:60)
  at
org.geotools.data.jdbc.ConnectionPool.getConnection(ConnectionPool.java:122)
  at
org.geotools.data.jdbc.JDBC2DataStore.createConnection(JDBC2DataStore.java:1
31)
  at
org.geotools.data.jdbc.JDBC1DataStore.getConnection(JDBC1DataStore.java:1033
)
  ... 36 more

============================================================================

Anyone else has any idea?

Regards,
Wai See

-----Original Message-----
From: Andrea Aime [mailto:aaime@…1…]
Sent: Wednesday, December 20, 2006 4:10 PM
To: Lee Wai See
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Creating datastore in GeoServer1.4.0:
PSQLException class org.postgis.PGbox2d does not implement
org.postgresql.util.PGobject

Lee Wai See ha scritto:

Hi,

I just downloaded GeoServer 1.4.0 and tried to create a new PostgreSQL
datastore. However, when I submitted, I got the following exception:

Connection failed:org.postgresql.util.PSQLException: The class class
org.postgis.PGbox2d does not implement org.postgresql.util.PGobject.

I am using PostgreSQL 8.0 and PostGIS 1.0.4-1. Previously I was using
GeoServer 1.3.0-RC2 with these same versions without this problem, so I
am not sure what is causing it with 1.4.0. I have tried the same
configuration on two different machines and the results are the same.

Strange, these classes are included in the postgres driver, and I do
not have a PGbox2d around at all, just PGbox3d (in my postgresql
jdbc driver I mean).
A full stack trace would be nice, but it seems to me you're having
some kind of conflict between your postgres install and the jdbc
driver we're shipping. Or, have you replaced the driver with a
different one, or maybe put a different driver in your web containers
shared lib?

Cheers
Andrea

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.25/593 - Release Date: 12/19/2006

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.25/593 - Release Date: 12/19/2006

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the message
from your system; please do not copy or use it for any purpose, nor disclose
its contents to any other person. Thank you.]
---ST Electronics Group---

Lee Wai See ha scritto:

Hi,

Andrea, thanks for your reply.

Strange, these classes are included in the postgres driver, and I do
not have a PGbox2d around at all, just PGbox3d (in my postgresql
jdbc driver I mean).

We do have a PGbox2d found in our postgis_1.0.0.jar, but not postgresql jdbc
driver.

I've just checked, the postgis.jar we're shipping with in 1.4.0 does not
contain a PGBox2d class (I've downloaded 1.4.0.war from sourceforge).
So it seems that class comes from somewhere else?
It is apparently incompatible with the postgis driver we're shipping with, but why is the problem around, I don't know...
Can you try and replace both postgis.jar and the postgres jdbc driver
included in geoserver with the ones shipping with your postgis install?

I'm cc'ing the postgis datastore mantainer, he may know more, but we'll
have to wait for him some 8 hours (it's night in Canada now).

Cheers
Andrea

Hi Andrea,

Can you try and replace both postgis.jar and the postgres jdbc driver
included in geoserver with the ones shipping with your postgis install?

This works. Well, at least we did not get the exception anymore. But should
this be the correct way of handling it? I mean, would there be any
repercussions if we do it this way?

And geoServer.war should just be of a deploy-and-use kind of web application
concept without doing any other changes/settings, right?

Regards,
Wai See

-----Original Message-----
From: Andrea Aime [mailto:aaime@…1…]
Sent: Wednesday, December 20, 2006 5:39 PM
To: Lee Wai See
Cc: geoserver-users@lists.sourceforge.net; Justin Deoliveira
Subject: Re: [Geoserver-users] Creating datastore in GeoServer1.4.0:
PSQLException class org.postgis.PGbox2d does not implement
org.postgresql.util.PGobject

Lee Wai See ha scritto:

Hi,

Andrea, thanks for your reply.

Strange, these classes are included in the postgres driver, and I do
not have a PGbox2d around at all, just PGbox3d (in my postgresql
jdbc driver I mean).

We do have a PGbox2d found in our postgis_1.0.0.jar, but not postgresql

jdbc

driver.

I've just checked, the postgis.jar we're shipping with in 1.4.0 does not
contain a PGBox2d class (I've downloaded 1.4.0.war from sourceforge).
So it seems that class comes from somewhere else?
It is apparently incompatible with the postgis driver we're shipping
with, but why is the problem around, I don't know...
Can you try and replace both postgis.jar and the postgres jdbc driver
included in geoserver with the ones shipping with your postgis install?

I'm cc'ing the postgis datastore mantainer, he may know more, but we'll
have to wait for him some 8 hours (it's night in Canada now).

Cheers
Andrea

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.25/593 - Release Date: 12/19/2006

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.25/593 - Release Date: 12/19/2006

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the message
from your system; please do not copy or use it for any purpose, nor disclose
its contents to any other person. Thank you.]
---ST Electronics Group---

Lee Wai See ha scritto:

Hi Andrea,

Can you try and replace both postgis.jar and the postgres jdbc driver
included in geoserver with the ones shipping with your postgis install?

This works. Well, at least we did not get the exception anymore. But should
this be the correct way of handling it? I mean, would there be any
repercussions if we do it this way?

Unless there are bugs in the jdbc driver, not. In fact I'm investigating
why we do shipt with postgis.jar at all, since nothing I can see in the postgis data store uses it.

And geoServer.war should just be of a deploy-and-use kind of web application
concept without doing any other changes/settings, right?

And usually it is, provided that your web container is clean. The only way I can think you getting issues is using a container that has an incorrect version of postgis.jar in the container shared libs (/tomcat/shared/libs for tomcat) or worse in the jdk lib/ext.... but it may well be that I lack fantasy today and I'm not thinking about something obvious :-p We'll see if Justin can think of anything else.

Cheers
Andrea