HBCI4Java: DDVPassport statt PinTanPassport?!

 
mholste
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 09 / 2017
Betreff:

HBCI4Java: DDVPassport statt PinTanPassport?!

 · 
Gepostet: 06.09.2017 - 14:19 Uhr  ·  #1
Ich versuche derzeit einen Start von HBCI4Java in meiner Applikation zu implementieren. Dafür habe ich zunächst natürlich mal die hbci.properties entsprechend angepasst und habe dann mit dem Tool InitAndTest einen Passport erstellt.
Dabei habe ich einen Passport für das PinTan-Verfahren erstellt. Das Tool ist problemlos durchgelaufen und hat mit "finished" geendet. Die erstellte Passport-Datei habe ich dann an entsprechender Stelle in die hbci.properties ergänzt:
Code
client.passport.PinTan.filename=PfadzurDatei/Datei

Anschließend habe ich einen initialen Start von HBCI4Java in einer meiner Klassen probiert:
Code
Das sieht in etwa so aus;
  public void connectBank()
  {
    Properties properties = new Properties();
    HBCIPassport passport   = null;
        HBCIHandler  hbciHandle = null;
        
        try
        {          
          URL url = new URL("platform:/plugin/mhFinPim/files/hbci.properties");
          InputStream inputStream = url.openConnection().getInputStream();      
          properties.load(inputStream);

          inputStream.close();
        }
        catch (IOException ioe)
        {
          //TODO Fehlerbahndlung
          ioe.printStackTrace();
        }
        
        HBCIUtils.init(properties, new FinPimHBCICallback());
              
        passport=AbstractHBCIPassport.getInstance();


Nachdem diese Methode ausgeführt wurde, erhalte ich diese Exception:
Code
org.kapott.hbci.exceptions.HBCI_Exception: kann kein Passport des Typs DDV instanziieren
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:732)
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:757)
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:769)
  at de.mho.finpim.service.FinPimServiceImpl.connectBank(FinPimServiceImpl.java:143)
  at de.mho.finpim.ui.parts.CredentialsPart$1.widgetSelected(CredentialsPart.java:142)
  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
  at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
  at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
  at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
  at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
  at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
  at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:162)
  at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
  at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
  at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
  at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:719)
  ... 28 more
Caused by: java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: 
  at java.lang.Runtime.load0(Runtime.java:806)
  at java.lang.System.load(System.java:1086)
  at org.kapott.hbci.passport.HBCIPassportDDV.<init>(HBCIPassportDDV.java:142)
  ... 33 more


Ich frage mich nun natürlich, wie HBCI4Java denn nun auf die Idee kommt, dass ich einen DDVPassport haben wollte?! Da ich mir nicht sicher war, ob das nun einfach an der Umgebung liegt, habe ich die entsprechenden Werte mal so gesetzt, dass ich damit DepotAbrufTest.java ausführen konnte. Das Ergebnis dieses Tests sieht dann so aus:
Code
<DBG> [2017.09.06 14:15:33.622] [main/main] manager.HBCIUtils: using default system locale de_DE
<DBG> [2017.09.06 14:15:33.715] [main/main] manager.HBCIUtils: initialized HBCI4Java for thread group main
<INF> [2017.09.06 14:15:33.715] [main/main] manager.HBCIUtils: This is HBCI4Java-2.5.12
<DBG> [2017.09.06 14:15:33.715] [main/main] manager.HBCIUtils: trying to load BLZ data
<DBG> [2017.09.06 14:15:34.043] [main/main] passport.AbstractHBCIPassport: creating new instance of a DDV passport
<DBG> [2017.09.06 14:15:34.043] [main/main] passport.HBCIPassportDDV: trying to load native DDV library 
Exception in thread "main" org.kapott.hbci.exceptions.HBCI_Exception: kann kein Passport des Typs DDV instanziieren
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:732)
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:757)
  at org.kapott.hbci.tools.DepotAbrufTest.main(DepotAbrufTest.java:148)
Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  at org.kapott.hbci.passport.AbstractHBCIPassport.getInstance(AbstractHBCIPassport.java:719)
  ... 2 more
Caused by: java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: 
  at java.lang.Runtime.load0(Runtime.java:806)
  at java.lang.System.load(System.java:1086)
  at org.kapott.hbci.passport.HBCIPassportDDV.<init>(HBCIPassportDDV.java:142)
  ... 7 more

Was ich also auch versuche, irgendwie soll immer wieder ein DDVPassport erzeugt werden! Wie passiert denn das? Muss ich dafür vielleicht die entsprechenden Abschnitte in der hbci.properties auskommentieren? Oder muss ich eventuell noch an anderer Stelle angeben, dass ich einen PinTanPassport nutzen will und eben keinen DDVPassport?
Bin für jede Hilfe dankbar!
Beste Grüße,
Michael
mholste
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 09 / 2017
Betreff:

Re: HBCI4Java: DDVPassport statt PinTanPassport?!

 · 
Gepostet: 06.09.2017 - 15:52 Uhr  ·  #2
Ich habe (hoffentlich) eine Lösung gefunden. Ich werde mich dann bei solchen fragen künftig eher an die Mailingliste von hbci4java wenden...
Gruß,
Michael
Gewählte Zitate für Mehrfachzitierung:   0