Erstellte Bilder auf AppServer werden nicht Angezeigt

J2EE, JSP, JSF, VisualWeb-Pack usw.

Moderator: wegus

Antworten
elro
Beiträge: 1
Registriert: 09.08.2009, 14:10

Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von elro » 09.08.2009, 14:28

Hallo,

ich bin neu hier und hoffe das Ihr mir bei meinem Problem helfen könnt.

Ich habe eine WebAnwendung(Projekt) mit NetBeans 6.5 erstellt. Dort habe ich eine JSP Seite mit vielen Eingabefeldern gemacht. Sind die Inforamtionen eingegeben und der Bestätigungsbutten gedrückt, wird eine Java Klasse aufgerufen, die anhand dieser Daten ein Bild generiert(2D Graphic). Dieses Bild soll in dem "resourcen" Ordner gespeichert werden. Dies speichere ich aktuell noch mit dem absoluten Pfad ab.(C:/Dokumente...) Anschließend möchte ich das Bild anzeigen. Starte ich die Anwendung funktioniert das auch alles, bis auf die Bild anzeige. Klicken ich aber im Hintergrund im Netbeans eimal auf den Ordner wo das Bild gespeichert ist, und aktualisiere im Browser, so wird das Bild angezeigt.(Vermute NetBeans Deployed das Projekt neu).

Wo liegt mein Problem?
Muss ich das Bild nicht über den Absoulten Pfad speichern? Wenn ja wie geht das?
Warum bekommt der Server nicht mit das eine neue Datei vorhanden ist?

Ich nutze Netbeans 6.5 mit GlassFishV2.

Vielen Dank im vorraus

manu
Beiträge: 4
Registriert: 16.01.2010, 15:18

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von manu » 18.01.2010, 09:53

Hallo elro,

habe genau das gleiche Problem. Bist du bereits zu einer Lösung gekommen?

Merci

Benutzeravatar
smurfi
Site Admin
Beiträge: 1623
Registriert: 29.06.2006, 11:33
Wohnort: Wuppertal
Kontaktdaten:

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von smurfi » 18.01.2010, 13:08

Hallo,

musst du das Bild vorher speichern?
Kannst du es nicht mittels eines Servlet und einem OutputStream direkt schicken?


Gruß
Michael

manu
Beiträge: 4
Registriert: 16.01.2010, 15:18

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von manu » 18.01.2010, 15:50

Hallo smurfi,

ja, das Bild muss vorher gespeichert werden. Zusätzliche Informationen zu dem Bild werden in einer DB abgelegt...

Es funktioniert ja auch eigentlich alles, bis auf das, das man zwischen Bild-Upload und Bild-Anzeige kurz in Netbeans gehen muss. Nach ca. 1 Sekunde erscheint dann im angegebenen Verzeichnis die hochgeladene Bilddatei. Wenn man nun zurück in den Browser geht und auf Aktualisieren klickt, wird das Bild angezeigt. ???

Benutzeravatar
smurfi
Site Admin
Beiträge: 1623
Registriert: 29.06.2006, 11:33
Wohnort: Wuppertal
Kontaktdaten:

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von smurfi » 19.01.2010, 05:44

Morgen oder Hallo,
manu hat geschrieben: ja, das Bild muss vorher gespeichert werden. Zusätzliche Informationen zu dem Bild werden in einer DB abgelegt...

Es funktioniert ja auch eigentlich alles, bis auf das, das man zwischen Bild-Upload und Bild-Anzeige kurz in Netbeans gehen muss. Nach ca. 1 Sekunde erscheint dann im angegebenen Verzeichnis die hochgeladene Bilddatei. Wenn man nun zurück in den Browser geht und auf Aktualisieren klickt, wird das Bild angezeigt. ???
was passiert wenn du es direkt auf dem Server laufen lässt , also das ganze nicht aus NetBeans heraus aufrufst?
Ich habe diese Probleme bei mir nicht (Windows-XP oder Windows 7(64bit)), erstelle anstatt eines Bildes halt nur PDF-Dateien, aber daran wird es mit Sicherheit nicht liegen.

Gruß
Michael

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von arittner » 19.01.2010, 08:37

Moin!
manu hat geschrieben:das man zwischen Bild-Upload und Bild-Anzeige kurz in Netbeans gehen muss.
Und wo speicherst Du das Bild nun? Im Ordner des NetBeans Projektes oder tatsächlich im ressource-Ordner des Deploy-Ordners unter Glassfish?

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

manu
Beiträge: 4
Registriert: 16.01.2010, 15:18

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von manu » 19.01.2010, 18:25

Hi,

@ Michael: Bin mit dem Thema Server leider noch nicht so vertraut. Habe mir jetzt einen seperaten Glassfish installiert. Wie kann ich nun mein jsp-Projekt in der Kommandozeile deployen?

@ Josch: Ich speicher die Bilder im Projektordner auf der linken Seite von Netbeans (im Verzeichnis ...bla\Bilder) . Die Bildanzeige erfolgt dann über den relativen Pfad. Meinst du mit Deploy-Ordner ...NetBeans 6.7.1\...\build\generated\classes\org\apache\jsp ?

Kann es sein, dass die Bilddateien nach dem Upload in irgendeinem temporären Verzeichnis von Glassfish oder Netbeans liegen und von dort aus nicht automatisch an die JSP weitergeleitet werden?

Grüße Manu

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von arittner » 20.01.2010, 11:51

Moin!

NetBeans = Entwicklungsumgebung

Glassfish = Application Server

Es macht doch gar keinen Sinn die, dynamisch während der Laufzeit, erzeugten Bilder in das NetBeans Projekt zu kopieren. Die auf dem Glassfish installierte Anwendung muss natürlich auch auf Ordnerstrukturen zugreifen die vom Glassfish zu erreichen ist. Vielleicht verwirrt ja, dass NB einen Glassfish komplett administrieren kann und das alles als Einheit aussieht. Aber die Projekt Ordner haben nunmal überhaupt nichts mit der veröffentlichen Anwendung auf dem Glassfish zu tun.

Ich hatte schon sowas befürchtet, weil Du mit absoluten Pfaden arbeitest (eine Todsünde in Server-Anwendungen).

Und schau Dir den Pfad \build\generated\classes\org\apache\jsp noch mal genau an. "\build\generated" <- schon der Name sagt aus, dass Du Dich da in der Entwicklungsumgebung befindest. Diese Ordner und Inhalte werden über den Buildprozess von NetBeans gefüllt und für die Veröffentlichung (Deploy) auf den App-Server verwendet. Da darf man eigentlich überhaupt nichts während der Laufzeit reinschreiben. Gelegentlich werden die build-Ordner sogar komplett gelöscht (Build & Clean).


Wenn Du später mal einen GF auf einem WebServer hast, existiert da ja auch kein NetBeans, spätestens dann geht sowieso überhaupt nichts mehr - unabhängig davon, dass Du mit c:\... Pfaden komplett verloren hast (weil wahrscheinlich der Server auf Linux, Unix oder Solaris laufen wird).


Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

manu
Beiträge: 4
Registriert: 16.01.2010, 15:18

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von manu » 25.01.2010, 09:55

Hallo Josch,

danke für den Hinweis. Habs hinbekommen.
Das Bild wird nun unter "File savedFile = new File(config.getServletContext().getRealPath("/")+"Bilder/"+itemName);" gespeichert und kann über "<img src="Bilder/<%=itemName%> ...>" angezeigt werden. :D

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Erstellte Bilder auf AppServer werden nicht Angezeigt

Beitrag von arittner » 25.01.2010, 09:56

Moin!

Super!

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

Antworten