我遇到一個問題加劇,這裏的事實 -拋出:ClassCastException - oracle.jdbc.OraclePreparedStatement
我註冊返回參數具體做,所以我鑄造java.sql.PreparedStatement中到Oracle .jdbc.OraclePreparedStatement。
當我運行這個從Eclipse和它甚至我們的開發服務器上按預期運行,這個偉大的工程。然而,這是當我把它移動到我們的測試服務器裏我打了一個意外的錯誤...
oracle.jdbc.driver.OraclePreparedStatementWrapper cannot be cast
to oracle.jdbc.OraclePreparedStatement
這是令人難以置信的奇怪的錯誤我,因爲我敢肯定,OraclePreparedStatement是分配從getStatement()。我調試,發現這是適用於所有環境:
//class oracle.jdbc.driver.OraclePreparedStatementWrapper
getStatement().getClass();
LOCAL和開發環境上都使用我在META-INF/context.xml的設置數據源:
<Resource name="dataSource/dbsubm" auth="Container"
type="oracle.jdbc.xa.client.OracleXADataSource"
factory="org.apache.naming.factory.BeanFactory"
user="*****" password="******"
URL="jdbc:oracle:thin:@host:port:db" />
測試環境不同,因爲它已經從即使配置是完全一樣的server.xml來一個DataSource。這對我來說是這些環境之間的唯一區別。
可能是什麼問題?爲什麼使用相同的代碼但不同的環境獲得ClassCastException?使用getClass()我可以告訴他們都是相同的類型...請幫助!
您的ojdbc.jar文件在所有機器上的版本是否相同? – darioo
ojdbc驅動程序的版本是什麼,並查看是否有相互之間的任何更改。 –
哇。這可能是! –