Domino 9 und frühere Versionen > ND6: Entwicklung
JDBC Treiber installieren
flaite:
Eigentlich nicht.
Ich hab das öfters gemacht.
Eigentlich nur neu starten.
Es gibt noch gewisse debug Parameter, die du in der Notes.ini setzen kannst. Dann wird das Classloading in die log.nsf gelogt.
Hat ich aber nie ein Problem mit.
Könnte mir höchstens noch vorstellen, dass du es ins falsche jvm/lib/ext getan hast.
Mein Domino Server ist auf C:\Domino7Server
Das lib\ext in C:\Domino7Server\jvm\lib\ext
Notes und Domino haben eine eigene VM.
Vielleicht hast du es in das lib/ext von der jre getan?
Meine jre ist in
C:\j2sdk1.4.2_15\jre
Wenn ich da jars in C:\j2sdk1.4.2_15\jre\lib\ext tue, weiss Domino davon nix, weil das eine andere JVM ist.
Ansonsten muss das einfach funktionieren.
Notes Classloading funktioniert ungefähr so:
1) Zuerst schaut er in den Pfaden, die in der notes.ini unter JavaUserClasses stehen.
2) Dann schaut er in <notes_oder_domino_Programm>/jvm/lib/ext
(1 und 2 können auch umgekehrt sein, weiss nicht)
3) Jeder Agent hat einen eigenen Classloader. Er schaut dann nach den jars, die an den Agenten gebunden sind.
Er schaut nicht in die OS-Umgebungsvariable Classpath (normales jre macht das)
Jedenfalls. Und das scheint hier nicht das Problem zu sein. Ich erwähn das nur.
Du hast eine alte Version von oracle.jdbc.OracleDriver in 1) und packst einen neuen in 3). Er läd immer das untere. Websphere hat eine Einstellung, um das umzudrehen. Das kann echt nervig sein. Wenn relativ weit unten in soner Classloader Hierarchie die alte Version eines packages steht, ist es schwierig bis unmöglich in nachgeordneten Classloadern eine neuere zu laden.
OSGi soll hier Abhilfe schaffen.
alesssandro:
Leider funktioniert es immer noch nicht. Ich hab nachgeschaut, ob ich's ins richtige jvm/lib/ext Verzeichnis kopiert habe. Bei diesem Testserver gibt es nur eine JVM - daher ist es sicher das richtige gewesen.
Dann hab ich das ganze noch einmal über die JavaUserClasses gemacht. Hat leider auch nichts geändert. Dateirechte auf den Treiber hab ich auch beachtet. ???
Die erwähnten debug Parameter der notes.ini für das Classloading hab ich nicht gefunden? Weiß jemand welche diese wären?
Eine andere Frage noch: Ich habe im vorigen Beitrag schon ein Code-Snippet erwähnt - hier noch einmal. Kann ich anhand dieses Codes davon ausgehen, dass das Classloading des JDBC Treibers nicht funktioniert hat. Mit dem Import des Paketes oracle.jdbc.OracleDriver sollte er eigentich auf den Treiber "zugreifen". Oder könnte der Fehler einen anderen Grund haben?
Wenn ich die Paketstruktur des Treibers anschaue (in eclipse oder unzip), dann gibt es oracle.jdbc.OracleDriver.class.
--- Code: ---import java.sql.*;
import oracle.jdbc.OracleDriver;
public class OracleConnection {
Driver drv = null;
//drv = new oracle.jdbc.driver.OracleDriver();
//...
}
--- Ende Code ---
Der Fehler:
--- Zitat ---OracleConnection.java2: package oracle.jdbc does not exist.
--- Ende Zitat ---
Ich bin ratlos?
- alex
alesssandro:
Konnte mein Problem jetzt selber lösen:
Der Designer Client zeigt immernoch den Fehler, dass er den JDBC Treiber nicht finden kann. Dies ignorierend hab ich den Agenten einfach weiterentwickelt. Wenn ich ihn am Server laufen lasse, hab ich Zugriff auf die Daten bekommen. Ich habe das Augenmerk zu sehr auf den Designer Client gelegt und dass dieser Fehler sagt, dass der Treiber am Server nicht funktioniert.
Hab jetzt den Treiber in der notes.ini des Servers mit JavaUserClasses eingebunden. Ich denke, dass es mit dem jvm/lib/ext auch gehen würde.
Wegen des Fehlers, den mir der Designer anzeigt: dachte, dass man vielleicht am Client den Treiber auch noch in notes.ini oder jvm/ext/lib kopieren muss. Hab ich nicht probiert. Da ich nun in Eclipse entwickle kommt dieser gar nicht zum Einsatz und der Fehler läßt mich kalt ;D
Grz.
flaite:
Das kann sein, dass man die extra Klassen zusätzlich im Designer einbinden muss.
Ist mir noch nicht aufgefallen.
Kann auch daran liegen, dass ich Notes Agenten in Eclipse entwickle und dann den Designer nur dazu nutze, um die Klassen aus Eclipse zu importieren.
alesssandro:
Domiclipse funktioniert neben ein paar Bugs ziemlich gut. Weiß nicht, ob du's kennst. Dabei kann man sich das manuelle importieren in den Designer sparen.
LG,
- alex
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln