Jboss 4.0.5 Application Server - Wie bekomm ich den deployment Ort?

semteX

Grünschnabel
Hallo!

Mich plagt im moment folgendes Problem:

In meiner Web Applikation existiert eine Textdatei, von welcher gelesen werden soll (jetzt im beispiel: test.txt) wenn ich in der applikation nun einfach test.txt öffnen will, versucht er sie im Pfad jboss405/bin/ zu öffnen... wo diese natürlich nicht liegt... Jboss erstellt zum glück beim deployment eine laufnummer, somit ist ein relativer, "fixer" pfad auch keine möglichkeit..

wie bekomm ich jetzt in java raus, wohin die applikation deployed wurde? im konkreten fall wär das jetzt /jboss405/server/default/tmp/deploy/tmp32285projekt-exp.war/(test.txt)

Vielen Dank,
Klaus
 
Hallo,

leg diese Dateien besser unter dem Web-Inf Verzeichnis ab. Dann kannst du von deinem Servlet wie folgt darauf zugreifen:
Java:
ServletContext ctx = getServletContext();
    InputStream is = ctx.getResourceAsStream("/WEB-INF/data.txt");
Dateien innerhalb von WEB-INF Lib sind über den Browser nicht über die URL zugänglich und deshalb von Haus aus für Zugriffe von außen geschützt

Gruß Tom
 
Das Problem hier ist wieder: ich brauch von dem Ding den Dateinamen incl komplettem Pfad, nicht den input stream (das ganze wird durch nen PDF Generator durchgeschossen, dieser verlangt als übergabeparameter nen dateinamen)... weiters muss das fertige pdf wieder in nem, über den webserver erreichbaren, ordner gespeichert werden... somit ists wieder "back to square one". Ich habe das im ersten posting nicht erwähnt, sorry dafür.

Mir wurde im Jboss forum geraten, ich soll das ding via Exploded Deployment deployen, damit umgeh ich die sich ständig ändernden Namen der laufenden Webapplikation...
"netter workaround", allerdings ist der von schön auch noch meilenweit weg (weil defakto wieder ein absoluter pfad herum fliegt..) ;)

Also falls noch wer was weiß, bitte gerne danke.

lg,
Klaus

edit: dass die file von außen zugänglich ist, war die komplette absicht, dennoch danke für den hinweis.
 
Zurück