我試圖通過我的下面的java代碼連接到Oracle 11g數據庫,在使用Tomcat 4服務器的Web應用程序中。 ojdbc6.jar在Eclipse構建路徑中,但是在下面得到Error。無法通過瘦連接Oracle 11g
但是當我在一個Java文件(public static void main())中嘗試了這段相同的Java代碼並且在Eclipse構建路徑中使用了ojdbc6.jar時,它能夠連接到d DB,非常奇怪! 那麼爲什麼這個相同的代碼不能在我的web應用程序?
服務器:Tomacat 4
JDK版本:JDK 1.6
Java代碼的:
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@hostName:portNum:SID","user", "pass");
聞聽此事下面錯誤:
java.lang.ArrayIndexOutOfBoundsException: 7
at oracle.security.o3logon.C0.r(C0)
at oracle.security.o3logon.C0.l(C0)
at oracle.security.o3logon.C1.c(C1)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:289)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:246)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
你能編輯你的問題並提供你的Java代碼嗎?否則,我們將無法幫助您。我發現你已經在你的數據庫URL中加入了'DB schema name',你在那裏放什麼?它應該是數據庫SID,而不是模式名稱。 –
您是否擁有Eclipse構建路徑中的所有Oracle JAR,或突出其中一個? ojdbc6.jar是正確的使用 - 你有沒有嘗試刪除其他兩個,只使用那一個? TTC7Protocol的東西似乎是特定於ojdbc14.jar(所以說[findjar](http://www.findjar.com/class/oracle/jdbc/ttc7/TTC7Protocol.html)),它不在ojdbc5的副本中.jar和ojdbc6.jar,我有。 –
我更新了一些更多的信息。請看看它。 @PrzemyslawKruglej:我已經提供了2行Java代碼,只是想用加載驅動程序連接數據庫。是的,那是DB SID名稱。 Luke:我的Eclipse構建路徑中只有ojdbc6.jar。但仍然遇到這個問題。代碼工作在一個獨立的Java文件中,只有ojdbc6.jar在路徑中,但在Web應用程序中,還有其他Jars(Spring,Apache commons jars等)以及ojdbc6.jar。可能是一些其他的瓶子造成這個問題?請指教。 – user2922076