# Pfad



## Ferenjito (14. Mrz 2006)

Hallo,

gibt es eine Möglichkeit, dynamisch den Pfad einer Web Application zu erkennen, ohne dass man sich innerhalb eines Servlets befindet, also ohne request.getContextPath(). Ich möchte in einer Klasse eine statische Initialisierung durchführen, die auf eine XML-Datei zugreift, die in der Verzeichniswurzel meiner WebApp liegt. Gibts da ne möglichkeit?

Thanks,
Ferenjito


----------



## meez (14. Mrz 2006)

?

Entweder bist du in eine Webapp oder nicht...
Und da führt kein Weg über den Container, bzw. getServletContext().getRealPath()


----------



## Ferenjito (14. Mrz 2006)

Also, das soll so gehen


```
Class myClass {

   public static Content myContent;
     static {
        myContent = initializiere(pfad)
    }

    public static doSomething() {
    }


 Class MyServlet extends HttpServlet (.....) {
  
     doGet(..) {
        myClass.doSomething();
        ......

     }
 }
```


Ich will also beim ersten Kontakt mit MyClass etwas initializieren, aber ich kann ja schlecht von dem statischen Code der Klasse auf den Servlet Kontext Pfad zugreifen, obwohl ich ja innerhalb der WebApp bin, oder?

Bin dankbar für Tips,

Ferenjito


----------



## meez (15. Mrz 2006)

Und wie wird myclass das erste mal aufgerufen?...Von einem Servlet...Das ist bei einer Webapp halt immer der Einstiegspunkt...
Zudem würd ich dir raten static sowie mehere Klassen unterschiedlicher Typen im gleichen File zu vermeiden...


----------



## bronks (15. Mrz 2006)

meez hat gesagt.:
			
		

> ... Zudem würd ich dir raten static ... vermeiden...


Warum kein Static?


----------



## Bleiglanz (15. Mrz 2006)

in der static geht gar nichts, weil du dann keinen Zugriff auf den Servlet-Kontext hast

=> verwende die init Methode eines Servlets

zur Datei:


leg sie in WEB-INF

und mach

context.getRessourceAsStream(".../WEB-INF/diedatei.xml")

also relativen pfad verwenden


----------

