# Zugriff auf DB-Pool, der von Servlet initialisiert wurde



## AndiArt (17. Mrz 2008)

Hallo,

mein Problem ist folgendes: Ich möchte eigentlich von einer JSP-Seite eine Bean-Methode aufrufen, die wiederum Klassen aufruft, in denen eine Datenbank abgefragt wird. Diese Datenbankabfrage soll über eine existierende Hilfsklasse geschehen, die aus einem Pool, der über zwei Servlets vorkonfiguriert wird, ihre Verbindung bekommt. Nun funktionierte das ganze noch nicht und ich wollte mal zum Testen eine normale Klasse schreiben, die das gleiche anstösst. Damit komme ich zwar komischerweise weiter (obwohl die Klasse die gleiche Sache wie die Bean macht), aber nun kann ich nicht mehr auf den Pool zugreifen, der von Tomcat und den Servlets vorinitialisiert wird.

Wie kann ich von meiner Hauptklasse diese vorkonfigurierte Poolklasse verwenden?

Mit freundlichen Grüssen,
Andreas Schröder


----------



## maki (17. Mrz 2008)

Wenn der Pool von TC verwaltet wird, rufst du ihn per JNDI auf.

Ansonsten solltest du dir überlegen, ob du nicht lieber ein MVC Prinzip einsetzt, d.h.:
Ein Servlet holt die Daten, legt sie in den Request/Session Scope und die JSP zeigt sie nur an.


----------



## AndiArt (17. Mrz 2008)

Der Pool ist ein Singleton und wird nicht per JNDI exportiert. Kann man denn aus einer Standalone-Anwendung diesen dann nicht benutzen, wenn er im TC instanziiert wurde? Falsche VM-instanz?


----------



## maki (17. Mrz 2008)

Ein Singleton?
Ich verstehe dein Problem nicht... dazu nutzt man doch das Singleton (Anti-) Muster, um von überall darauf zuzugreifen.

Wieso mehrere VMs?
Beschreib doch mal ein bisschen mehr...


----------



## AndiArt (17. Mrz 2008)

Naja, das Pool-Singleton wird von einem Servlet aus dem TC heraus instanziiert. Aber ich will mein neues Modul Standalone testen und kann von dem Programm dann nicht mehr auf das vorkonfigurierte Singleton zugreifen. Es ist dann nicht konfiguriert und daher denke ich, dass vielleicht die VM, die die Servlets startet, eine andere ist, als die, die das Standaloneprogramm startet und daher das Singleton nicht vorinstanziiert ist.


----------

