2013-04-16 162 views
3
WrappedConnectionJDK6 wrapped = (WrappedConnectionJDK6) dbStrategy.getConnection(); 
      Connection underlyingConn = wrapped.getUnderlyingConnection(); 
      OracleConnection oracleConn = (OracleConnection)underlyingConn; 

最後行給出錯誤 -oracle.jdbc.driver.T4CConnection不能轉換爲oracle.jdbc.OracleConnection

> ERROR 
> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/web].[resteasy-servlet]] 
> (http-/0.0.0.0:8080-1) Servlet.service() for servlet resteasy-servlet 
> threw exception: org.jboss.resteasy.spi.UnhandledException: 
> java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot 
> be cast to oracle.jdbc.OracleConnection 
+0

這是什麼問題? – Gab

+0

需要從WrappedConnectionJDK6獲得oracle連接,但是它的施放問題..任何線索如何獲得WrappedConnectionJDK6的oracle連接? – user2093576

+0

JBoss用它自己的一個包裝oracle連接(org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6)。我試圖調用#getUnderlyingConnection()來獲得底層連接。但是,雖然轉換到這一點Oracle連接它給錯誤...連接鑄造錯誤 – user2093576

回答

5

AFAIK T4CConnection應該實現oracle.jdbc.OracleConnection。 恕我直言,你有2個驅動程序實現,一個在應用程序服務器上,一個在你的項目依賴項中,必須有一個類加載問題,因爲檢索到的驅動程序實現是由共享類加載器加載的,並且你試圖將其轉換爲由webApp類加載器。

您可以確保您的Web應用程序依賴性與服務器提供的實現相同,或者只是在封裝時從Web應用程序中排除依賴項。

如果您使用的是maven,只需將範圍設置爲provided即可。

+0

它提供另一現在面臨同樣的問題 \t \t com.oracle \t \t ojdbc6 \t \t 11.2.0.3 \t \t 提供 \t \t user2093576

+0

啊,老實說,以及我不知道所以。你有沒有傳遞依賴的地方? – Gab

+0

其實我需要創建 - StructDescriptor.createDescriptor(「SOMETHING」,con);但因爲它是從oracle實用程序,我不能通過連接作爲sql連接..所以我需要將T4CCon轉換爲Oracle ..和鑄造給出了問題.. – user2093576

相關問題