Hallo,
ich versuche gerade einen Client zu programmieren. Bei mir wird der folgende Fehler erzeugt:
Exception in thread "main" java.lang.NullPointerException
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:116)
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:133)
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:128)
at org.kapott.hbci.manager.HBCIUtils.getParam(HBCIUtils.java:1158)
at org.kapott.hbci.manager.HBCIUtils.getParam(HBCIUtils.java:1191)
at org.kapott.hbci.passport.HBCIPassportPinTan.<init>(HBCIPassportPinTan.java:92)
at com.mycompany.hbcitest.Main.main(Main.java:74)
Mein Code sieht folgendermaßen aus:
private static class MyHBCICallback
extends HBCICallbackConsole
{
public void callback(HBCIPassport passport,int reason,String msg,int dataType,StringBuffer retData)
{
if (reason == HBCICallback.CLOSE_CONNECTION || reason == HBCICallback.NEED_CONNECTION)
return;
System.out.println("Callback für folgendes Passport: "+passport.getClientData("init").toString() + ", reason=" + reason);
super.callback(passport,reason,msg,dataType,retData);
}
}
public static void main(String[] args) throws Exception {
Properties props = new Properties();
// BLZ
props.put(HBCICallback.NEED_BLZ, "xxxx");
props.put(HBCICallback.NEED_CUSTOMERID, "xxxxxx");
props.put(HBCICallback.NEED_HOST, "https://xxxxx/cgi-bin/hbciservlet");
props.put(HBCICallback.NEED_PT_PIN, "password");
props.put(HBCICallback.NEED_USERID, "username");
props.put(HBCICallback.NEED_PT_SECMECH, HBCIVersion.HBCI_220.getId());
props.put(HBCICallback.NEED_COUNTRY, "DE");
props.put(HBCICallback.NEED_FILTER, "Base64");
//HBCIPassportPinTan passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance();
HBCIPassportPinTan passport = new HBCIPassportPinTan("");
HBCIHandler handler = null; // = new HBCIHandler(HBCIVersion.HBCI_220.getId(), passport);
// HBCI4Java initialisieren
//HBCIUtils.loadPropertiesFile(new FileSystemClassLoader(),"/home/jonas/java/hbci/jw.hbci4java.properties")
HBCIUtils.init(props, new MyHBCICallback());
// Nutzer-Passport initialisieren
//Object passportDescription = "Passport für Kontoauszugs-Demo";
//passport = AbstractHBCIPassport.getInstance(passportDescription);
try {
// ein HBCI-Handle für einen Nutzer erzeugen
String version = passport.getHBCIVersion();
//hbciHandle=new HBCIHandler("300", passport);
handler = new HBCIHandler((version.length()!=0)?version:"plus",passport);
System.out.println("Alle Geschäftsvorfälle in HBCI4Java: " + handler.getKernel().getAllLowlevelJobs().toString());
System.out.println("Unterstützte Geschäftsvorfälle der Bank: " + handler.getSupportedLowlevelJobs().toString());
//"Trockentest" des Umsatzparsers mit vorgebenen Daten
//test_ums(hbciHandle, "/home/jonas/java/hbci/msg536.txt");
//test_ums(hbciHandle, "/home/jonas/java/hbci/msg536_hbci-zka.txt");
//Konten ausgeben
System.out.println("Kontenliste:");
System.out.println("------------");
Konto[] konten = passport.getAccounts();
for (int i=0; i<konten.length; i++) {
System.out.println("Konto " + i + ": " + konten[i]);
}
/*BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
String line;
int umsatzkto=-1, depotkto=-1;
System.out.print("Bitte Konto für Umsatzliste eingeben (-1, um zu überspringen): ");
do {
line = rd.readLine();
try {
umsatzkto = Integer.parseInt(line);
if (umsatzkto >= -1 && umsatzkto < konten.length) {
break;
} else {
System.out.println("Ungültiges Konto: " + line);
}
} catch (Exception e) {
e.printStackTrace();
}
} while (line != null);
System.out.print("Bitte Konto für Depotliste eingeben (-1, um zu überspringen): ");
do {
line = rd.readLine();
try {
depotkto = Integer.parseInt(line);
if (depotkto >= -1 && depotkto < konten.length) {
break;
} else {
System.out.println("Ungültiges Konto: " + line);
}
} catch (Exception e) {
e.printStackTrace();
}
} while (line != null);
// Umsätze auflisten (als Demo, dass es grundsätzlich funktioniert)
if (umsatzkto >= 0)
analyzeReportOfTransactions(passport, handler, konten[umsatzkto]);
// Depotinhalt auflisten
if (depotkto >= 0)
analyzeDepot(passport, handler, konten[depotkto]);
*/
} finally {
if (handler!=null) {
handler.close();
} else if (passport!=null) {
passport.close();
}
}
}
Weiß Jemand woran das liegt?
ich versuche gerade einen Client zu programmieren. Bei mir wird der folgende Fehler erzeugt:
Code
Exception in thread "main" java.lang.NullPointerException
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:116)
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:133)
at org.kapott.hbci.manager.HBCIUtilsInternal.getLocMsg(HBCIUtilsInternal.java:128)
at org.kapott.hbci.manager.HBCIUtils.getParam(HBCIUtils.java:1158)
at org.kapott.hbci.manager.HBCIUtils.getParam(HBCIUtils.java:1191)
at org.kapott.hbci.passport.HBCIPassportPinTan.<init>(HBCIPassportPinTan.java:92)
at com.mycompany.hbcitest.Main.main(Main.java:74)
Mein Code sieht folgendermaßen aus:
Code
private static class MyHBCICallback
extends HBCICallbackConsole
{
public void callback(HBCIPassport passport,int reason,String msg,int dataType,StringBuffer retData)
{
if (reason == HBCICallback.CLOSE_CONNECTION || reason == HBCICallback.NEED_CONNECTION)
return;
System.out.println("Callback für folgendes Passport: "+passport.getClientData("init").toString() + ", reason=" + reason);
super.callback(passport,reason,msg,dataType,retData);
}
}
public static void main(String[] args) throws Exception {
Properties props = new Properties();
// BLZ
props.put(HBCICallback.NEED_BLZ, "xxxx");
props.put(HBCICallback.NEED_CUSTOMERID, "xxxxxx");
props.put(HBCICallback.NEED_HOST, "https://xxxxx/cgi-bin/hbciservlet");
props.put(HBCICallback.NEED_PT_PIN, "password");
props.put(HBCICallback.NEED_USERID, "username");
props.put(HBCICallback.NEED_PT_SECMECH, HBCIVersion.HBCI_220.getId());
props.put(HBCICallback.NEED_COUNTRY, "DE");
props.put(HBCICallback.NEED_FILTER, "Base64");
//HBCIPassportPinTan passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance();
HBCIPassportPinTan passport = new HBCIPassportPinTan("");
HBCIHandler handler = null; // = new HBCIHandler(HBCIVersion.HBCI_220.getId(), passport);
// HBCI4Java initialisieren
//HBCIUtils.loadPropertiesFile(new FileSystemClassLoader(),"/home/jonas/java/hbci/jw.hbci4java.properties")
HBCIUtils.init(props, new MyHBCICallback());
// Nutzer-Passport initialisieren
//Object passportDescription = "Passport für Kontoauszugs-Demo";
//passport = AbstractHBCIPassport.getInstance(passportDescription);
try {
// ein HBCI-Handle für einen Nutzer erzeugen
String version = passport.getHBCIVersion();
//hbciHandle=new HBCIHandler("300", passport);
handler = new HBCIHandler((version.length()!=0)?version:"plus",passport);
System.out.println("Alle Geschäftsvorfälle in HBCI4Java: " + handler.getKernel().getAllLowlevelJobs().toString());
System.out.println("Unterstützte Geschäftsvorfälle der Bank: " + handler.getSupportedLowlevelJobs().toString());
//"Trockentest" des Umsatzparsers mit vorgebenen Daten
//test_ums(hbciHandle, "/home/jonas/java/hbci/msg536.txt");
//test_ums(hbciHandle, "/home/jonas/java/hbci/msg536_hbci-zka.txt");
//Konten ausgeben
System.out.println("Kontenliste:");
System.out.println("------------");
Konto[] konten = passport.getAccounts();
for (int i=0; i<konten.length; i++) {
System.out.println("Konto " + i + ": " + konten[i]);
}
/*BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
String line;
int umsatzkto=-1, depotkto=-1;
System.out.print("Bitte Konto für Umsatzliste eingeben (-1, um zu überspringen): ");
do {
line = rd.readLine();
try {
umsatzkto = Integer.parseInt(line);
if (umsatzkto >= -1 && umsatzkto < konten.length) {
break;
} else {
System.out.println("Ungültiges Konto: " + line);
}
} catch (Exception e) {
e.printStackTrace();
}
} while (line != null);
System.out.print("Bitte Konto für Depotliste eingeben (-1, um zu überspringen): ");
do {
line = rd.readLine();
try {
depotkto = Integer.parseInt(line);
if (depotkto >= -1 && depotkto < konten.length) {
break;
} else {
System.out.println("Ungültiges Konto: " + line);
}
} catch (Exception e) {
e.printStackTrace();
}
} while (line != null);
// Umsätze auflisten (als Demo, dass es grundsätzlich funktioniert)
if (umsatzkto >= 0)
analyzeReportOfTransactions(passport, handler, konten[umsatzkto]);
// Depotinhalt auflisten
if (depotkto >= 0)
analyzeDepot(passport, handler, konten[depotkto]);
*/
} finally {
if (handler!=null) {
handler.close();
} else if (passport!=null) {
passport.close();
}
}
}
Weiß Jemand woran das liegt?