I am using a 2.1.0 postgis compiled from source.  I should probably try 
generating the jdbc driver from the source used to compile postgis... 

On Tue, Oct 29, 2013 at 12:05:35PM +0100, Jeremy Reeve wrote:
> 
> 
> Hi there,
> 
> I hope someone can assist in pointing a PostGIS newbie in the right direction.
> 
> Using the following explicit Maven dependency:
> 
> <dependency>
>   <groupId>org.postgis</groupId>
>   <artifactId>postgis-jdbc</artifactId>
>   <version>1.3.3</version>
> </dependency>
> 
> Where transitive dependencies on postgis-stubs (1.3.3) and 
> postgresql-8.3-603.jdbc4.jar are also pulled in.
> 
> Executing the following code yields an exception thrown, the following is 
> executed once during construction:
> 
> Class.forName("org.postgresql.Driver");
> mConnection = DriverManager.getConnection(URL, USER, PASSWORD);
> 
> /*
>  * Add the geometry types to the connection. Note that you must cast the
>  * connection to the pgsql-specific connection implementation before
>  * calling the addDataType() method.PostGIS 2.1.1dev Manual 75 / 672
>  */
> ((org.postgresql.PGConnection) 
> mConnection).addDataType("geometry",org.postgis.PGgeometry.class);
> mPreparedStatementInsertObservation = 
> mConnection.prepareStatement(INSERT_OBSERVATION_SQL);
> 
> 
> And the following multiple times:
> 
> Point point = new Point();
> point.x = observation.getLocation().getLatitude();
> point.y = observation.getLocation().getLongitude();
> point.z = observation.getLocation().getAltitude();
> PGgeometry geometry = new PGgeometry(point);
> mPreparedStatementInsertObservation.setObject(1, geometry);
> 
> The top of stack trace when exception is thrown from setObject:
> 
> java.lang.NoSuchMethodError: 
> org.postgresql.core.BaseConnection.getEncoding()Lorg/postgresql/core/Encoding;
>                            at 
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2025)
>                            at 
> org.postgresql.jdbc2.TypeInfoCache.getPGType(TypeInfoCache.java:216)
>                            at 
> org.postgresql.jdbc2.AbstractJdbc2Connection.getPGType(AbstractJdbc2Connection.java:971)
>                            at 
> org.postgresql.jdbc2.AbstractJdbc2Statement.setPGobject(AbstractJdbc2Statement.java:1542)
>                            at 
> org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1736)
>                            at 
> com.argusat.gjl.observice.repository.postgis.ObservationRepositoryPostGISImpl.storeObservations(ObservationRepositoryPostGISImpl.java:145)
>                            at 
> com.argusat.gjl.observice.repository.postgis.ObservationRepositoryPostGISImplTest.testStoreObservations(ObservationRepositoryPostGISImplTest.java:72)
> 
> 
> I have read on the mailing list that the root cause is a subtle classpath 
> ordering issue but I'm not sure of exactly what's happening.   It looks to me 
> as though the PGgeometry type isn't being correctly registered with JDBC.  I 
> have seen driverconfig.properties packaged with the postgis-jdbc jar which 
> appears to perform the required registration.  I have tried the explicit 
> registration and assuming that the driverconfig.properties is working but 
> neither seem to work.
> 
> Incidentally, is it possible to use PGgeometryLW in place of PGgeometry for 
> better performance and if so, is the following SQL correct?
> 
> private static final String INSERT_OBSERVATION_SQL = "insert into 
> observations "
>                    + "(location, obs_timestamp, device_id, hdop, vdop, 
> obs_type, value0, "
>                  + "value1, value2, value3, value4 ) VALUES"
>                  + "(ST_GeomFromEWKB(?),?,?,?,?,?,?,?,?,?,?)";
> 
> Should I be using the values without wrapping in a ST_ constructor when using 
> PGgeometry as opposed to PGgeometryLW, for example:
> 
> private static final String INSERT_OBSERVATION_SQL = "insert into 
> observations "
>                    + "(location, obs_timestamp, device_id, hdop, vdop, 
> obs_type, value0, "
>                  + "value1, value2, value3, value4 ) VALUES"
>                  + "(?,?,?,?,?,?,?,?,?,?,?)";
> 
> I think I'd prefer geography types in my database, is it possible to use 
> these in conjunction with JDBC? 
> 
> 
> With kind regards..Jeremy
> 
> _______________________________________________
> postgis-users mailing list
> [email protected]
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to