Обсуждение: ClassCastException org.postgresql.jdbc3.Jdbc3Connection

Поиск
Список
Период
Сортировка

ClassCastException org.postgresql.jdbc3.Jdbc3Connection

От
Prasanth
Дата:
I am trying to get the PGConnection/Jdbc3Connection object from
Connection class.
The connection class returned is
org.jboss.resource.adapter.jdbc.WrappedConnection (as I am using JNDI in
JBoss).

When I try to get the underlying connection and cast it to
Jdbc3Connection I am getting a class cast exception.

Below is the code.
Connection conn =
((WrappedConnection)DBConnection.getConnection()).getUnderlyingConnection();
LargeObjectManager lobj =
((org.postgresql.jdbc3.Jdbc3Connection)conn).getLargeObjectAPI();

In the above code DBConnection class provides a method to get the
connection object from the pool.

Exception:
09:42:33,016 WARN  [RequestProcessor] Unhandled Exception thrown: class
java.lang.ClassCastException
09:42:33,017 ERROR [[action]] Servlet.service() for servlet action threw
exception
java.lang.ClassCastException: org.postgresql.jdbc3.Jdbc3Connection


As you can see it says that the object is of type Jdbc3Connection so why
does it give a class cast exception then?

I am using  postgresql-8.1-404.jdbc3.jar driver & the database is 8.1.3.

Thanks,
-Prasanth.

Re: ClassCastException org.postgresql.jdbc3.Jdbc3Connection

От
Prasanth
Дата:
I think I got it. The server had a jar & my WAR has the same jar.
Probably the JNDI used the jar in the server while my application used
the class from the jar in the WAR.
As these are two different class files I was getting the class cast
exception.

-Prasanth.

Prasanth wrote:
> I am trying to get the PGConnection/Jdbc3Connection object from
> Connection class.
> The connection class returned is
> org.jboss.resource.adapter.jdbc.WrappedConnection (as I am using JNDI in
> JBoss).
>
> When I try to get the underlying connection and cast it to
> Jdbc3Connection I am getting a class cast exception.
>
> Below is the code.
> Connection conn =
> ((WrappedConnection)DBConnection.getConnection()).getUnderlyingConnection();
> LargeObjectManager lobj =
> ((org.postgresql.jdbc3.Jdbc3Connection)conn).getLargeObjectAPI();
>
> In the above code DBConnection class provides a method to get the
> connection object from the pool.
>
> Exception:
> 09:42:33,016 WARN  [RequestProcessor] Unhandled Exception thrown: class
> java.lang.ClassCastException
> 09:42:33,017 ERROR [[action]] Servlet.service() for servlet action threw
> exception
> java.lang.ClassCastException: org.postgresql.jdbc3.Jdbc3Connection
>
>
> As you can see it says that the object is of type Jdbc3Connection so why
> does it give a class cast exception then?
>
> I am using  postgresql-8.1-404.jdbc3.jar driver & the database is 8.1.3.
>
> Thanks,
> -Prasanth.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>