|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Schnittstelle für die Reaktion auf Ereignisse. Dieses Interface muss von der HBCI-Server-Anwendung implementiert werden, um auf Ereignisse zu reagieren, die vom HBCI4Java-Server-Code erzeugt werden. Zur Zeit gibt es nur zwei "Ereignisse": die Ausgabe einer Log-Information und das Eintreffen eines Auftragssegmentes innerhalb einer Kundennachricht. Später werden hier noch mehr Callbacks zu finden sein, so zum Beispiel für das Ereignis "Nutzer hat neue Schlüssel eingereicht" (wird zur Zeit völlig transparent vom HBCI4Java-Server-Code behandelt)
In der Regel ist beim Auftreten eines solchen Callbacks der Kernel-Parameter
connection.id
(kann mit HBCIUtils.getParam("connection.id")
ermittelt werden) auf einen Wert gesetzt, der für jede Client-Verbindung
eindeutig ist. Damit können also alle Callbacks, die zu einer Client-Verbindung
gehören, auch als solche erkannt werden (z.B. um die Logausgaben pro HBCI-Session
in separate Dateien zu schreiben, kann der Wert dieses Parameters als Teil
des Dateinamens für die jeweilige Log-Datei verwendet werden). Ausnahme sind
einige log
-Callbacks, die von einem "allgemeineren" Teil des
HBCI-Server-Frameworks generiert werden (Initialiserung, Warten auf Verbindungen,
usw.) und die keiner bestimmten Client-Connection zugeordnet sind. In diesem Fall
liefert die Abfrage von connection.id
null
.
Es ist zu beachten, dass alle hier aufgeführten Callbacks aus mehreren Threads gleichzeitig aufgerufen werden können, d.h. diese Methoden müssen auf jeden Fall thread-safe implementiert werden. Es wird je Client-Connection ein separater Thread gestartet, jeder dieser Threads kann unabhängig von den anderen (und *nicht* vom HBCI-Server-Framework synchronisiert) diese Callback-Methoden aufrufen.
Method Summary | |
void |
handleGV(JobContext context)
Wird beim Eintreffen eines Auftragssegmentes aufgerufen. |
void |
log(String msg,
int level,
java.util.Date date,
StackTraceElement trace)
HBCI-Server-Code hat Log-Ausgabe erzeugt. |
Method Detail |
public void handleGV(JobContext context)
context
enthält Informationen über den aktuellen Dialog
(Kunden-ID usw.) sowie die eigentlichen Auftragsdaten. Die Rückgabedaten
für diesen Auftrag (Auftragsdaten, Fehlermeldungen) werden von der
HBCI-Server-Anwendung ebenfalls über dieses context
-Objekt
an den HBCI4Java-Server-Code übergeben. Das context
-Objekt
stellt also die eigentliche Schnittstelle zwischen der HBCI-Anwendung und
dem HBCI4Java-Sever-Code dar.
context
- enthält Informationen zum eingegangenen Auftrag und dient zur
Speicherung der Antwortdatenpublic void log(String msg, int level, java.util.Date date, StackTraceElement trace)
HBCI-Server-Code hat Log-Ausgabe erzeugt. Die Argumente dieser Methode
sind äquivalent zu denen aus HBCICallback.log()
. Tatsächlich stammen sie auch aus genau dieser Methode. Die
hier auflaufenden Meldungen betreffen Server-interne Details und sind
praktisch nur für Debugging-Zwecke nutzbar.
Soll das Backend-System der Bank auf bestimmte Ausgaben reagieren, so könnte dieses Verhalten zwar als quick-and-dirty hack erst mal implementiert werden, besser ist es aber, das jeweilige Ereignis als "richtigen" Callback zu behandeln (dann muss natürlich eine entsprechende Methode in diesem Interface definiert sein). Grund ist, dass die Log-Ausgaben nicht als offizielles API zu verstehen sind und sich jederzeit ändern können, deshalb ist eine Reaktion auf bestimmte Log-Ausgaben nicht zu empfehlen.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |