# Exception bei Verbindungsaufbau Oracle Datenbank



## klaus1 (20. Sep 2005)

Hi!

Habe Probleme beim Verbindungsaufbau in dieser Zeile:

```
try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.172.128:1521:oracle", "test", "*****");
			
		} 
		catch (ClassNotFoundException e) {
			System.out.println("Driver not found");
		} 
		catch (SQLException e) {
			while (e != null) {
				System.out.println(i + ".:\nMessage: " + e.getMessage()
						+ "\nSQLState: " + e.getSQLState() + "\nErrorCode: "
						+ e.getErrorCode());
				e = e.getNextException();
				i++;
			}
		}
```

Komme nicht über conn=..... hinüber.
Bekomme immer folgende Exception, die nicht im Catch gefangen wird:
Exception in thread "main" 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:525)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at Database.<init>(Database.java:13)
	at Database.main(Database.java:152)

Bitte um Hilfe!
LG, Klaus


----------



## Bleiglanz (20. Sep 2005)

stimmen username und passwort?

schon mal mit scott / tiger probiert?


----------



## klaus1 (20. Sep 2005)

ja, user und kennwort stimmen besitmmt, sonst würde eine andere exception kommen (Invalid username or password)


----------



## Bleiglanz (20. Sep 2005)

aktuelle classes.zip im Einsatz (bzw. eine, die zur Oracle Version passt)?


----------



## klaus1 (20. Sep 2005)

ja auch in verwendung!
sehe gerade, ich verwende nur import java.sql.* mehr nicht!


----------



## klaus1 (20. Sep 2005)

verwende jdk 1.5 und habe classes12.zip implementiert, scheint für jdk 1.2 zu sein.. 
weiß jemand wo ich die classes.zip runterladen kann für die jdk 1.5 ? ist das richtig, im java ordner unter jar/lib/ext das ganze reinzukopieren?
Lg, Klaus


----------



## Bleiglanz (21. Sep 2005)

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

>>ist das richtig, im java ordner unter jar/lib/ext das ganze reinzukopieren?

nein, das ist total falsch; schau mal in die doku unter classpath

starte dein Programm mit jara -cp pfad/zur/classes.zip MeineKlasse


----------



## klaus1 (21. Sep 2005)

ich verwende aber eclipse, muss ich das irgendwie importieren?
kann mir jemand sagen wohin genau?


----------



## Bleiglanz (21. Sep 2005)

mit der rechten Maustaste auf das Projekt

> Build Path > Configure Build Path > Add external Jar


----------



## klaus1 (21. Sep 2005)

hätte ich gemacht... nur wird das dann auch nicht gefunden... (Syntax erkennt zwar alles, aber beim starten der Klassen über JSP gibts fehlermeldungen, dass die Sachen nicht importiert werden konnten).

root cause
java.lang.NoClassDefFoundError: org/jdom/Content


kopiere ich die jar datei direkt rein in mein JAVA_HOME\jre\lib\ext dann klappts! (ist aber auch nicht sinnvoll)

LG, Klaus


----------



## Bleiglanz (22. Sep 2005)

java.lang.NoClassDefFoundError: org/jdom/Content 

das hat mit der Datenbank doch überhaupt NICHTS zu tun

und Eclipse ist nur eine Entwicklungsumgebung, die hat mit der Laufzeit möglichweise auch nix zu tun

beim Tomcat schmeiss deine jars in WEB-INF/lib/

...


----------



## klaus1 (22. Sep 2005)

ok, das klappt jetzt mit den LIB! danke!

ein weiteres problem bekomme ich nun, beim aufruf des statements mit:


```
cs = conn.prepareCall("{ call WEEBLES_BULK.BULK_USER_INTERFACE.CREATECAMPAIGN(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");

			// Inputvalues
			cs.setString(1, pcampname);
			cs.setString(2, pcampdesc);
			cs.setString(3, pcamptamplate);
			cs.setFloat(4, pconf_priority);
			cs.setString(5, pconf_time_hh24_min_from);
			cs.setString(6, pconf_time_hh24_min_to);
			
			cs.setDate(7, Date.valueOf(pconf_earliest_start_date));
			cs.setDate(8, Date.valueOf(pdeadline_date));
			
			
			cs.setString(9, pconf_sourcegateway);
			cs.setString(10, pconf_sourcesuffix);
			cs.setFloat(11, pconf_timetolive);
			cs.setFloat(12, pconf_sendverlongsms);
			cs.setFloat(13, pconf_sendsmsasflashsms);

			// Outputvalue
			cs.registerOutParameter(14, Types.FLOAT);
			
			// execute PROCEDURE
			cs.execute();
```

und zwar müssten die übergabeparameter passen (laut DB).
Fehlermeldung:

CreateCampaignException: java.sql.SQLException: Ungültiger Spaltenindex

wenn ich cs.registerOutParameter(14, Types.Float) auskommentier, regt er sich auf, weil index 14 nicht verwendet wurde!
Bin also richtig auf der DB drinnen, nur leider hats da noch was mit dem Spaltenindex..

Kann ich irgendwie ausgeben, wo ich mich grad befinde? Oder Brakepoints in der DB setzen? 
LG, Klaus


----------



## Bleiglanz (22. Sep 2005)

schreib mal

```
conn.prepareCall("{ ? = call WEEBLES_BULK.BULK_USER_INTERFACE.CREATECAMPAIGN(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");  // hinten 13
```


----------



## klaus1 (22. Sep 2005)

hab fehler gefunden... hat schon gestimmt, nur den rückgabewert hätte ich aus spalte 1 genommen, und nicht aus 14!


----------

