# JAVA BEAN DB Connection Prob



## kallez (20. Mrz 2005)

Hallo zusammen ich hoffe ihr könnt mir helfen und zwar habe ich mir ein Connection Pool gebaut.
Zudem habe ich ein Filter gesetzt der Mir die Connection's aus dem servletcontext in die session speichert um von überall mir eine connection zu holen wenn eine benötigt wird. Somit kann ich via der session mir die jeweilige Datenbank connection abholen. Funktioniert wunderbar auf der jsp seite und auf dem servlet direkt.
Nun zum prob und zwar hab ich mir eine Java bean geschrieben die mir daten von einem jeweiligen datensatz liefert
nur bekomme ich leider keine verbindung zur session um mir eine connection aus dem pool zu holen
Bisher habe ich ein HttpServletRequest und ein HttpSession Objekt erzeugt um mir die jeweilige session zu holen.
und darüber mir das jeweilige attribut zu holen um eine datenbankverbindung aufbauen zu können nur leider bekomm ich nur ne NullPointerException was mir sagt das er das Attribut nicht gefunden hat gefunden hat.
Hat wer ne ahnung wie ich das anstellen kann?


----------



## foobar (20. Mrz 2005)

Poste doch mal etwas Code, das hier ist nicht das Wahrsageforum.


----------



## kallez (21. Mrz 2005)

Hier der geforderte Quelltext worauf sich mein prob bezieht 


```
import java.sql.SQLException;

public class TeilnehmerBean {

	
	TeilnehmerDb teilnehmerDb = new TeilnehmerDb();

  private String id;

  public TeilnehmerBean() {
  }

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

  public TeilnehmerDetails getTeilnehmerDetails() throws SQLException {
    return teilnehmerDb.getTeilnehmerDetails(id);
  }

}
```

Und nun meine problemklasse 


```
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;

public class TeilnehmerDb extends HttpServlet{

	private Datenbankverbindung jdbc;
	private ResultSet result;
	HttpSession session;
		
	public TeilnehmerDetails getTeilnehmerDetails(String id)
			throws SQLException {
		
		jdbc = new Datenbankverbindung((Connection) session.getAttribute("dbcon"));	
		result = jdbc.Abfrage("SELECT * FROM kursteilnehmer WHERE id = " + id);
		result.next();

		TeilnehmerDetails teilnehmerDetails = new TeilnehmerDetails(result
				.getString("id"), result.getString("kunr"), result
				.getString("kuname"), result.getString("kuvorname"), result
				.getString("kustrasse"), result.getString("kuplz"), result
				.getString("kuort"), result.getString("kutelvorwahl"), result
				.getString("kutelefon"), result.getString("kuemail"), result
				.getString("kugebdat"), result.getString("kubildungsgutsch"),
				result.getString("bemerkungen"), result.getString("ersterfassung"));

		return teilnehmerDetails;
	}
}
```


----------



## daLenz (21. Mrz 2005)

hi kallez,

ich denke das problem liegt an der session! so wie du es hier aufrufst, hast du nicht zugriff auf "deine" session --> also bekommst du die nullpointerexception!



			
				kallez hat gesagt.:
			
		

> Und nun meine problemklasse
> 
> 
> ```
> ...



du musst aus deiner action(servlet), die session aus dem request auslesen, und dann diese session an die klasse TeilnehmerDb übergeben!


```
HttpSession session = request.getSession(true);
```

wenn du diese session nun an deine klasse TeilnehmerDb übergibst, sollte der zugriff auf "dbcon" klappen, und keine exception mehr auswerfen!

hoffe,das hilft weiter!

greetz


----------



## kallez (21. Mrz 2005)

???:L  hmm also wenn ich das richtig verstehe muss ich


```
ServletRequest request:
HttpServletRequest hreq = (HttpServletRequest) request;
HttpSession session = request.getSession();
```

nur worauf zeigt request? bzw wie bekomme ich das aktuelle request von servlet?
oder stell ich mich einfach nur zu doof an? *g


----------



## daLenz (21. Mrz 2005)

Ok, versuchs nochmal 

du hast ein servlet!? in diesem servlet musst du es so irgendwie lösen:


```
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    HttpSession session = request.getSession(); 
    //und von hier kannst du die session deiner bean übergeben (und von bean zu der db-klasse  --> z.B. bei getTeilnehmerDetails(id,session)!
}
```


oder von wo/wie aus rufst du deine bean auf?

und noch eine frage: wieso erbt deine TeilnehmerDB vom HttServlet?

hoffe, das hilft ein wenig weiter...

greetz


----------

