Externe Adressdaten einbinden

 
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Externe Adressdaten einbinden

 · 
Gepostet: 15.04.2014 - 15:04 Uhr  ·  #1
Jameica 2.6.1 / Hibiscus 2.6.5
Ich gehe nach der Anleitung http://www.willuhn.de/wiki/doku.php?id=develop:addressbook vor und erstelle eine jar-Datei, die die beiden genannten Interfaces implementiert.
Die jar-Datei kommt wie beschrieben ins "plugins/hibiscus/lib" Verzeichnis.
Jameica wird neu gestartet.(mit aktiviertem TRACE loglevel).
In der log-Datei finde ich auch:

[Tue Apr 15 14:47:44 CEST 2014][DEBUG][de.willuhn.util.MultipleClassLoader.addJars] loader.jameica: adding file ...\.jameica\plugins\hibiscus\lib\MyAddressBook.jar
...
[Tue Apr 15 14:47:44 CEST 2014][INFO][de.willuhn.jameica.services.ClassService.prepareClasses] loader.jameica: loaded jar ...\.jameica\plugins\hibiscus\lib\MyAddressBook.jar

Etwas später allerdings lediglich:

[Tue Apr 15 14:47:49 CEST 2014][INFO][de.willuhn.jameica.hbci.server.AddressbookServiceImpl.getAddressbooks] loading addressbooks
[Tue Apr 15 14:47:49 CEST 2014][DEBUG][de.willuhn.util.ClassFinder.findImplementors] used time to search for implementors of de.willuhn.jameica.hbci.rmi.Addressbook: 0 millis]
[Tue Apr 15 14:47:49 CEST 2014][INFO][de.willuhn.jameica.hbci.server.AddressbookServiceImpl.getAddressbooks] Hibiscus-Adressbuch

... und das externe Adressbuch ist nicht zu sehen.

Tipps?
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 15.04.2014 - 15:41 Uhr  ·  #2
Das liegt daran, weil das JAR nicht in den Classfinder aufgenommen und daher die Implementierungen nicht gefunden werden. Hab das im Wiki mal angepasst. Lege die JAR-Datei mal in "plugins/hibiscus" (also nicht in den Unter-Ordner "lib") und benenne die Datei so, dass ihr Name mit "ext_" beginnt.

Alternativ koenntest du das auch als extra Jameica-Plugin verpacken.
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 15.04.2014 - 15:54 Uhr  ·  #3
Dann erhalte ich beim Starten von Jameica:

java.lang.SecurityException: class "de.willuhn.jameica.hbci.rmi.AddressbookService"'s signer information does not match signer information of other classes in the same package

Ggf. hat das damit zu tun, dass meine Klassen ebenfalls im package "de.willuhn.jameica.hbci.rmi" liegen (war letzter Stand meine Versuche).
Morgen mehr.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 15.04.2014 - 16:04 Uhr  ·  #4
Ja, das geht nicht. Die Klassen und Packages von Jameica und Hibiscus sind signiert. Da kannst du keinen eigenen Code in die existierenden Packages reintun, weil dann die Signaturen nicht mehr stimmen. Nimm eigene Packages. Wenn das JAR-File "ext_<deinname>.jar" heisst, wird es dann auch mit eigenem Packagen-Namen gefunden werden.
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 16.04.2014 - 08:00 Uhr  ·  #5
Um das (positive!) Ergebnis zusammenzufassen:
  • die die beiden Interface Klassen implementierenden Klassen müssen in einem eigenen Package stehen
  • in der resultierenden jar-Datei dürfen die beiden Interface Klassen nicht enthalten sein!
  • der Name der jar-Datei muß mit ext_ beginnen
  • die jar-Datei kommt ins plugins/hibiscus Verzeichnis
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 16.04.2014 - 10:54 Uhr  ·  #6
Zitat geschrieben von miwie

in der resultierenden jar-Datei dürfen die beiden Interface Klassen nicht enthalten sein!


Klar, die sind ja direkt in Hibiscus enthalten.

Prima, dass es funktioniert hat. BTW: Was fuer ein Adressbuch hast du denn eigentlich angebunden?
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 16.04.2014 - 11:21 Uhr  ·  #7
Eine simple Textdatei.
Diese wurde in der Vergangenheit (mehr oder weniger) händisch gepflegt und enthält lediglich "Name IBAN BIC".
Nach einem aktuell anstehenden Kontowechsel plane ich endlich Hibscus zu verwenden und wollte vermeiden, diese Daten in Hibiscus einzupflegen.
Ausserdem hat mich die einfache Beschreibung dazu verleitet, ein "proof of concept" zu erstellen.
Denkbar wäre nun -. da es grundsätzlich funktioniert - die Kontodaten doch in eine Datenbank zu packen und den Importer entsprechend anzupassen.
Heart
Benutzer
Avatar
Geschlecht:
Beiträge: 349
Dabei seit: 11 / 2003
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 16.04.2014 - 14:46 Uhr  ·  #8
Deine aktuell vorhandene CSV Datei direkt in Hibiscus importieren wäre keine (einfache) Lösung? ;)

Format:
Code
"Name";"Kontonummer";"BLZ";"IBAN";"BIC";"Notiz"
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 16.04.2014 - 21:44 Uhr  ·  #9
Geht natürlich auch.
Mich hat halt auch die Implementierung der Schnittstelle interessiert.
infoman
Benutzer
Avatar
Geschlecht:
Beiträge: 7395
Dabei seit: 06 / 2008
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 17.04.2014 - 08:15 Uhr  ·  #10
@miwie
hehe lieber kompliziert, wie die einfachere Variante
miwie
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 04 / 2014
Betreff:

Re: Externe Adressdaten einbinden

 · 
Gepostet: 17.04.2014 - 09:56 Uhr  ·  #11
Na ja, das Einbinden via externe Datenquelle anstatt CSV Import hat zumindest für mich den Vorteil, dass ich bei Änderungen, Löschen, Hinzufügen von Kontodaten nicht immer ein Delta-CSV erzeugen muss bzw. vorhandene/bereits importierte Daten in Hibiscus ändern muss.
Meine Master-Datei enthält immer den aktuellen Stand.
Gewählte Zitate für Mehrfachzitierung:   0