Webservice, DB-Query

   public String svn(int SVN)
   {
        try {
            connection = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);

            String query = "SELECT Nachname FROM kunden WHERE Sozialversicherungsnummer=" + SVN;
            Logger.getLogger(KuranstaltWS.class.getName()).log(Level.INFO, "Pobiere GurkenSalatquery"+query);
            PreparedStatement stmnt = connection.prepareStatement(query);
            ResultSet resultSet = stmnt.executeQuery();
            if (resultSet.next()) {
                Logger.getLogger(KuranstaltWS.class.getName()).log(Level.INFO, "Gurkensalat, Datensatz gefunden");
                return resultSet.getString(1);
            } else {
                Logger.getLogger(KuranstaltWS.class.getName()).log(Level.INFO, "Gurkensalat, "+SVN+" nicht gefunden");
            }
        } 
        catch (SQLException ex) {
            Logger.getLogger(KuranstaltWS.class.getName()).log(Level.SEVERE, null, ex);
        }
         Logger.getLogger(KuranstaltWS.class.getName()).log(Level.INFO, "überflüssiger Gurkensalat");
         return "Error!";     
    }

und jetzt die Übung: finde DAS logfile, in dem Gurkensalat vorkommt

Die Exceptions fliegen ja in deinem Code. Auch die Logausgabe (Logger.getLog…) machst Du mit Deinen Klassen als Logger-Name. Suche also im Logfile nach diesen Namen, um Fehler zu finden. Das habe ich in dem zuletzt von Dir geposteten File nicht sehen können.

wenn schlicht in der DB nichts gefunden wird, dann keine Exception, keine Logausgabe, nur Rückgabe Error!,
dass mit der Webservice-Test-Nummer was gefunden werden kann ist höchstest durch Vertrauen in olaf777 zu erhoffen, also nicht gerade sicher,

mit Code von Bleiglanz oder meinen nicht ganz wenigen Beispielen :wink: käme mehr Log dazu, um die Gewissheit zu erhalten was tatsächlich in allen Fällen passiert,

dann auch erstmals weider seit #15 relativ sicher, dass überhaupt Einträge im Log auftauchen,
bisher ist mit dem Code #15 ein Durchlauf ohne Logeinträge mit der angegebenen Rückgabe denkbar, durch Nicht-Finden in der DB
(wie so häufig wiederhole ich im letzten Satz den ersten…)

[QUOTE=Bleiglanz]
und jetzt die Übung: finde DAS logfile, in dem Gurkensalat vorkommt[/QUOTE]

Habe den Sourcecode so abgeändert, kann aber den Salat nicht in den Logfiles finden…

Danke aber für die Hilfe!

versuche bitte folgendes Programm, was kommt zurück?:

   public String svn(int SVN)
   {
        String info = "";
        try {
            connection = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);

            String query = "SELECT Nachname FROM kunden WHERE Sozialversicherungsnummer=" + SVN;
            info += ";Pobiere GurkenSalatquery"+query;
            PreparedStatement stmnt = connection.prepareStatement(query);
            ResultSet resultSet = stmnt.executeQuery();
            if (resultSet.next()) {
                info += ";Gurkensalat, Datensatz gefunden: "+ resultSet.getString(1);
            } else {
                info += ";Gurkensalat, "+SVN+" nicht gefunden";
            }
        } 
        catch (SQLException ex) {
            info += ";Exception: "+ex.toString();
        }
         info += ";überflüssiger Gurkensalat";
         return info;     
    }

Such in der Konfiguration, wohin gelogged wird

So, ich hab eine erfreuliche Nachricht zu berichten: Es funktioniert jetzt.
Der Fehler war, dass in der context.xml Datei vom Apache Tomcat Installationsverzeichnis ein Connection Pool zu einer nicht mehr existierenden Klasse („Kur_WebService“) von einem Vorprojekt eingespeichert war, das ich völlig vergessen hatte…Egal, gelöst und ich bekomm tatsächlich zu meiner eingegebenen Sozialversicherungsnummer einen Nachnamen raus! :slight_smile:

Nun bin ich so motiviert, dass ich das Projekt gerne erweitern möchte. Habe in der Datenbank nun folgende Felder:
Vorname VARCHAR
Nachname VARCHAR
Postleitzahl INT
Ort VARCHAR
Geburtsdatum DATE

Ich würde gerne alle Informationen nach Eingabe einer Sozialversicherungsnummer zurückbekommen. Nun wollt ich eure professionelle und hilfreiche Meinung fragen, wie ich das bewerkstelligen soll… Soll ich alle Daten in ein Array speichern? Oder das per Klassen ausgeben? Beides wäre grundsätzlich möglich oder? Was wäre besser? Und was einfacher? :smiley: Bin ja noch immer Anfänger^^

Lg und danke für die bisherige Hilfe!

  • Definier eine Klasse Person mit pasenden Feldern und gettern und settern
  • INT für Postleitzahlen ist eine blöde Idee. Zahlentypen nur für echte Zahlen (mit denen man z.B. rechnen will)
  • Lerne, PreparedStatements zu bauen (Stichwort ‘?’ und setzen von Parametern per Methoden)
  • Denke über Normalisierung nach. Evtl. macht es Sinn, Adresse in einer eigenen Tabelle (und in der Folge auch Klasse) zu modellieren.