JBoss Tomcat; auf absoluten Pfad zugreifen

Pauer76

Mitglied
Hallo,
ich habe folgendes Problem.
Ich habe den JBoss 4.2 laufen und den Tomcat darin integriert. Im Tomcat habe ich eine Webanwendung laufen in der Informationen zu verschiedenen Produkten angezeigt werden. Über einen externen Service werden diese Informationen in der Datenbank aktualisiert. Ich möchte jetzt auch noch verschiedene Bilder anzeigen deren Pfad ich in der Datenbank hinterlegen möchte. Wie kann ich jetzt in meiner Webanwendung diese Bilder anzeigen. Bzw. wo müssen diese Bilder abgelegt werden.
 
Leg die doch hin, wohin du willst. Einfach nen Stream von der Platte lesen und in den Response OutputStream schreiben. Wenn du absolute Pfade hast ist das gar kein problem.

Gruß
Ollie
 
Geht das. Einfach einen Stream von der Platte lesen. Die Bean die im Hintergrund läuft, läuft doch auch auf dem Tomcat. Und der kann doch nicht aus seiner Verzeichnisstruktur raus. Das wäre doch ein risiges Sicherheitsloch.
 
Was ist daran ein Sicherheitsloch? Das du erstmal grundsätzlich Zugriffe auf die komplette Platte hast, heißt ja noch lange nicht, dass du von überall lesen geschweige denn dahin schreiben darfst. Wenn du (auf Betriebssystemebene) deinem Tomcat erlaubst deine /etc/.passwd zu lesen -> das ist ein Sicherheitsloch. Dann solltest du allerdings eher deinen Admin blamen als Tomcat :D. Deswegen sollten Server nie als root laufen.

Zum Thema: Du brauchst einen Ordner auf den dein Tomcat Schreib und Leserechte hat uns los gehts. Im Idealfall spendierst du deinem Tomcat einen eigenen User und kannst dann z.B. das Homeverzeichnis nett als Datenablage verwenden.

Gruß
Ollie
 
Sorry, ich komme an der Stelle einfach nicht weiter. Ich bekomme es zum einen nicht hin ein JPG von der Platte zu lesen. Z.B aus dem Verzeichnis D:\bla\bild.jpg.
Image pic = Toolkit.getDefaultToolkit().getImage( "D:/bla/bild.jpg" );
Und zum anderen ist es mir nicht klar wenn ich dieses Bild dann habe und schreibe es in den OutputStream. Wie kann ich das Bild dann auf meine Webseite vernünftig Positionieren.
 
Java:
InputStream stream = new FileInputStream(new File("/foo/bar.jpg");

Der Schlüssel für die Darstellung ist halt, dass du erstmal normales HTML auslieferst:

HTML:
<img src="http://www.bubbu.com/images/babba.jpg" alt="Bildsche" />

Wenn du nun ein Servlet auf /images hören lässt, dieses babba.jpg in /foo/bar.jpg umsetzt. Dieses liefert dann das Bild aus.

Gruß
Ollie
 

Neue Beiträge

Zurück