Re: Cast java.sql.Connection to PGConnection - Mailing list pgsql-jdbc
From | Vitalii Tymchyshyn |
---|---|
Subject | Re: Cast java.sql.Connection to PGConnection |
Date | |
Msg-id | CABWW-d0oohfz3mFVB36utN9KKtA-dtoTyRnXRXkaL9dRF3Qxnw@mail.gmail.com Whole thread Raw |
In response to | Re: Cast java.sql.Connection to PGConnection ("David G. Johnston" <david.g.johnston@gmail.com>) |
Responses |
Re: Cast java.sql.Connection to PGConnection
Re: Cast java.sql.Connection to PGConnection |
List | pgsql-jdbc |
I'd really suspect a classloading issue here. TS gets connection through JNDI and then tries to unwrap/cast. By any chance, have you got two postgresql driver jars in different classloaders (e.g. two webapps or tomcat lib and webapp or tomcat common lib)?
Best regards, Vitalii Tymchyshyn
Вт, 17 трав. 2016 17:06 користувач David G. Johnston <david.g.johnston@gmail.com> пише:
Except that didn't appear to work ... haven't confirmed the behavior myself.In any case an apparent second report of this just surfaced:David J.On Tue, May 3, 2016 at 3:18 AM, Philippe Marschall <Philippe.Marschall@netcetera.com> wrote:Hi
The following is the way to do it:
PGConnection pgCon = conn.unwrap(PGConnection.class);
Cheers
Philippe
________________________________________
From: pgsql-jdbc-owner@postgresql.org <pgsql-jdbc-owner@postgresql.org> on behalf of peter.penzov <peter.penzov@gmail.com>
Sent: Monday, May 2, 2016 20:29
To: pgsql-jdbc@postgresql.org
Subject: [JDBC] Cast java.sql.Connection to PGConnection
I want to upload a file in PostgreSQL using Tomcat:
@Resource(name = "jdbc/DefaultDB")
private DataSource ds;
Connection conn = ds.getConnection();
I tried to cast the conn object this way:
PGConnection pgCon = ((org.apache.commons.dbcp.DelegatingConnection)
conn).getInnermostDelegate();
I get
Caused by: java.lang.ClassCastException:
org.apache.tomcat.dbcp.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper
cannot be cast to org.postgresql.PGConnection
I also tried:
Connection unwrap = conn.unwrap(Connection.class);
connSec = (org.postgresql.PGConnection) unwrap;
I get
java.sql.SQLException: Cannot unwrap to org.postgresql.PGConnection
LargeObjectManager pgCon = pgCon.getLargeObjectAPI();
What is the proper way to implement the code?
P.S
I tried this:
PGConnection pgConnection = null;
if (conn.isWrapperFor(PGConnection.class))
{
pgConnection = conn.unwrap(PGConnection.class);
}
LargeObjectManager lobj = pgConnection.getLargeObjectAPI();
But I get NPE at this line LargeObjectManager lobj =
pgConnection.getLargeObjectAPI();
--
View this message in context: http://postgresql.nabble.com/Cast-java-sql-Connection-to-PGConnection-tp5901531.html
Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
pgsql-jdbc by date: