INFORMATION: HBCI1: HBCI BLZ '70020270': msg=org.kapott.hbci.exceptions.HBCI_Exception: kann keine Kommunikations-Objekt des Typs Standard erzeugen
at org.kapott.hbci.comm.Comm.getInstance(Comm.java:137)
at org.kapott.hbci.passport.HBCIPassportAnonymous.getCommInstance(HBCIPassportAnonymous.java:307)
at org.kapott.hbci.passport.AbstractHBCIPassport.getComm(AbstractHBCIPassport.java:175)
at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:348)
at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:176)
at org.kapott.hbci.dialog.AbstractRawHBCIDialog.sendData(AbstractRawHBCIDialog.java:123)
at org.kapott.hbci.dialog.AbstractRawHBCIDialog.execute(AbstractRawHBCIDialog.java:96)
at org.kapott.hbci.manager.HBCIInstitute.fetchBPD(HBCIInstitute.java:276)
at org.kapott.hbci.manager.HBCIInstitute.register(HBCIInstitute.java:373)
at org.kapott.hbci.manager.HBCIHandler.registerInstitute(HBCIHandler.java:282)
at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:171)
at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:116)
at de.icomps.imp.ext.HBCI.test(HBCI.java:337)
at de.icomps.imp.ext.HBCI.startProcessing(HBCI.java:258)
at de.icomps.imp.ext.HBCI.main(HBCI.java:135)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.kapott.hbci.comm.Comm.getInstance(Comm.java:135)
... 14 more
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Aufbau der Verbindung zum HBCI-Server
at org.kapott.hbci.comm.CommStandard.<init>(CommStandard.java:85)
... 20 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:579)
at java.base/sun.nio.ch.Net.connect(Net.java:568)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at java.base/java.net.Socket.connect(Socket.java:583)
at org.kapott.hbci.comm.CommStandard.<init>(CommStandard.java:80)
... 20 more, level=1, date=Fri Sep 15 15:12:42 CEST 2023, trace=org.kapott.hbci.manager.HBCIUtils.log(HBCIUtils.java:1613)
------------------------------------
Gibt es einen Beispielcode um von einer Bank per HBCI und Anonymous die Metadaten abzufragen? Mein letzter Versuch ist dieser: --------------------------------------------------
private final void test() {
String blz = "70020270";
String hbciHost = "hbci.hypovereinsbank.de";
Integer hbciPort = 3000;
String hbciVersion = VERSION_HBCI.getId();
String pinDefault = "asdf_12345";
//init HBCI4Java runtime environment:
Properties propsHBCI = new Properties();
HBCIUtils.init(propsHBCI, new MyHBCICallback(blz, pinDefault));
String s = "HBCI info for BLZ '"+blz+"': BankInfo="+HBCIUtils.getBankInfo(blz)+", Name="+HBCIUtils.getNameForBLZ(blz);
LOGGER.info(s);
//static general infos:
HBCIUtils.setParam("client.product.name","iComps HBCI");
//HBCIUtils.setParam("client.product.version","2397"); //Länge muss zwischen 1 und 5 liegen
//HBCIUtils.setParam("client.passport.filename","HBCI_client.passport.file.txt");
//HBCIUtils.setParam("client.passport.init","1");
// //propsHBCI.put("client.passport.customerId", "testName";
//
BankInfo info = HBCIUtils.getBankInfo(blz);
//create authentication passport:
HBCIPassport passport = null;
HBCIUtils.setParam("client.passport.country", "DE");
HBCIUtils.setParam("client.passport.blz", blz);
//passport = AbstractHBCIPassport.getInstance(); //server and user identification
//passport = HBCIPassportAnonymous.getInstance();
HBCIUtils.setParam("client.passport.default","Anonymous"); //
HBCIUtils.setParam("client.passport.Anonymous.filename","HBCI_Passport_BLZ-"+blz+"_anonymous.txt"); //avoid HBCI_Exception: kann kein Passport des Typs Anonymous instanziieren
HBCIUtils.setParam("client.passport.Anonymous.init","1"); //avoid HBCI_Exception: kann kein Passport des Typs Anonymous instanziieren
HBCIUtils.setParam("client.passport.customerId", blz);
passport = AbstractHBCIPassport.getInstance("Anonymous"); //might throw InvalidUserDataException: Passwort darf nicht leer sein
passport.setCountry("DE");
passport.setHost(hbciHost);
//passport.setHost(info.getPinTanAddress());
passport.setPort(hbciPort);
//passport.setFilterType("None");
passport.setFilterType("Base64"); //message encoding
//hbciVersion = passport.getHBCIVersion();
String[] hbciVersions = passport.getSuppVersions(); //get supported HBCI version
LOGGER.info("HBCI BLZ "+blz+": supported HBCI versions: "+hbciVersions);
String[] hbciLanguages = passport.getSuppLangs();
LOGGER.info("HBCI BLZ "+blz+": supported HBCI languages: "+hbciLanguages);
String[][] secMethods = passport.getSuppSecMethods();
LOGGER.info("HBCI BLZ "+blz+": supported HBCI security methods: "+secMethods);
String[][] compMethods = passport.getSuppCompMethods();
LOGGER.info("HBCI BLZ "+blz+": supported HBCI comp methods: "+compMethods);
//connect and get FinTS version:
HBCIHandler handle = null;
try {
handle = new HBCIHandler(hbciVersion, passport); //requires internet access with whitelisted HBCI server and port
Properties propsLowLevelJobs = handle.getSupportedLowlevelJobs();
LOGGER.info("HBCI info for BLZ "+blz+", port "+hbciPort+": HBCI version: "+hbciVersion+", supported low level jobs: "+propsLowLevelJobs);
//add jobs to execute:
HBCIJob job = handle.newJob(REQNAME_INFOLIST);
job.addToQueue();
//execute job queue:
HBCIExecStatus status = handle.execute(); //execute all HBCI jobs
if (!status.isOK()) {
LOGGER.severe("HBCI error status: "+status.getErrorString());
}
} finally {
if (handle != null) { handle.close(); };
if (passport != null) { passport.close(); };
}
}//test
--------------------------------------------------
Ohne ausführlichere Dokumentation und Beispiele ist es ziemlich frustrierend per try and error zu raten, wie die API zu bedienen ist. Gibt es eine Beispiel für solch einen HBCI Anonymous Zugriff? Danke schon im Voraus!