On Mon, 9 Apr 2007, Thor-Michael St�re wrote:
> CAUSE: On further investigation, Postgres jdbc driver's Connection from
> ConnectionPoolDataSource/XADataSource is a proxy of java.sql.Connection,
> This proxy, in jdk 1.6 will list all methods of jdbc 4.0 connection
> (even though the datasource is only jdbc 30) This makes GlassFish to
> decide (during initialization of datasource) that it is a jdbc 4.0
> compatible connection and calls jdbc 4.0 methods of Connection, causing
> AbstractMethodError thrown.
>
The real problem is that you are using the JDBC3 instead of JDBC4 driver
with a 1.6 JVM. I don't believe that either PG or Glassfish are at fault.
When the JDBC3 driver was built (under a 1.4/1.5) JDK it does implement
all java.sql.Connection methods so it is fine to proxy for it. When run
under a 1.6 JVM the proxying suddenly claims to implement more methods
which Glassfish reasonably tries to use. So I think it's really a
configuration error on your part.
Kris Jurka