Pfadangaben beim WebService

TheGreenDragon

Erfahrenes Mitglied
Hallo,

ich hab folgendes Problem. Wenn ich einen WebService Projekt starte und meine Klassen alle im (default) Ordner lasse kann ich ohne Problme mit

Code:
File f = new File(./WEB-INF/wusa.pdf)

Dateien in meinem Web Ordner ablegen. Aber sobald ich die Klasse in eine Package wie

de.chillen.sprueche

einfüge funktioniert das nicht mehr. Als Fehler kommt immer FileNotFoundException.

Folgendes hab ich schon probiert:

..../WEB-INF/wusa.pdf

././././WEB-INF/wusa.pdf

hat jemand eine Ahnung wie das gehen kann?

Gruß
 
Ach lol hat sich erledigt,
die Klasse im default Ordner erbte von HttpServlet! Die Klasse in meinen erstellten Packages erbte jedoch nur von Object!
 
Ach neeeeeee..., hat sich doch nicht erledigt. Das Problem besteht weiter hin.
Um das Problem bisschen einzugrenzen, hier mal meine Erkenntnisse.
Alles natürlich im Web-Service.

1. Klasse erbt von Object, erzeugt ein
Code:
FileOutputStream fos = new FileOutputStream("./WEB-INF/wusa.pdf");

2. Klasse erbt von Servlet, erzeugt ein
Code:
FileOutputStream fos = new FileOutputStream("./WEB-INF/wusa.pdf");

Wenn ich nun Objekte von 1 und 2 erzeuge durch eine Klasse die eine main()-Methode enthält funktioniert alles wunderbar.

Wenn ich jedoch die Objekte durch ein Servlet erzeugen lasse kommt eben FileNotFoundException!

Hat jemand eine Idee?
 
Das ist relativ logisch. Dein Servlet läuft in einem Servletcontainer. D.h. der . in deinem new File(..) referenziert eine ganz andere Stelle im Filesystem, als wenn du das aus einer Mainmethode in einer "normalen" VM machst.

Die einfachste Variante für lesende Zugriffe ist, Resourcen im Classpath abzulegen und per Foo.getResourceAsStream(..) zu machen.

Gruß
Ollie
 

Neue Beiträge

Zurück