# sendRedirect Problem!



## Stillmatic (5. Okt 2010)

Schönen guten Morgen zusammen!

Ich habe ein kleines Problem in meinem programmierten Webservice.

Ich möchte das bei einem Klick auf einen Button ein Feld in einer Datenbank um einen verringert wird.
Die Ausführung des Datenbank Befehls funktioniert auch so weit. Ich möchte jedoch das bei einer korrekten Ausführung ein sendRedirect gesendet wird welches nicht auf eine Seite weiterleitet.

Problem ist nur, das mein Programm den sendRedirect (im Debugger gesehen) ausführt, jedoch wird er tatsächlich nicht ausgeführt.
Der Prozess bleibt stehen. Wenn ich den Prozess per Hand wieder starte, wird korrekt weiter geleitet.

Hier der Teil indem das Problem besteht:

```
private DatenbankService service = new DatenbankMockService();

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        int id              =   Integer.parseInt(request.getParameter("id"));

        if (service.Update(id))
        {
            //Dieser sendRedirect wird nicht richtig durchgeführt
            response.sendRedirect("seite.jsp");
        }
        else
        {
            response.sendRedirect("index.jsp");
        }
    }
```

Hier die Klasse in der die Datenbank Funktionen implementiert sind:

```
public boolean Update(int id) {
        boolean result = false;    
        Connection con = null;
        Statement statement = null;
        try {

            Class.forName("org.hsqldb.jdbcDriver");
            con = DriverManager.getConnection("jdbc:hsqldb:D:/Applications/NetBeans 6.9.1/hsqldb/data/db", "SA", "");
            statement = con.createStatement();
            statement.execute("UPDATE PRODUCTS SET WERT = WERT - 1 WHERE ID = " + id);
            statement.execute("SHUTDOWN");
            con.close();
            statement.close();
            result = true;
        } catch (SQLException ex) {
            System.out.println(ex);
        } catch (ClassNotFoundException ex) {
            System.out.println(ex);
        }
        
        return result;
    }
```

Sieht von euch jemand den Fehler oder ein Problem?


----------



## felaziokarle (5. Okt 2010)

erst statement.close() dann con.close()

```
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection("jdbc:hsqldb:D:/Applications/NetBeans 6.9.1/hsqldb/data/db", "SA", "");
```
soll rechenintensiv sein. Vielleicht ist es ein timeout Problem. Eine connection Factory oder das arbeiten mit datasource könnte das lösen.

Methodennamen sollte man mit kleinBuchstaben beginnen.


----------



## Stillmatic (5. Okt 2010)

Danke!

Connection Factory und Datasource sagen mir jetzt nichts.
Werde ich mir mal anschauen!

Was genau meinst du mit Timeout Problem?


----------



## Stillmatic (5. Okt 2010)

Problem hat sich gelöst!
Hatte auch nicht mit den genannten Methoden zu tun.

Vielen Dank!

Good Night


----------

