我试图通过我的下面的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