Announcement

Collapse
No announcement yet.

File Upload - File wird nicht erstellt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • File Upload - File wird nicht erstellt

    Hallo!

    Folgende Konstellation:
    Ich versuche mittels eines Struts Dateiuploads eine Datei hochzuladen. Nach dem Upload, der Erstellung der temporären Datei steigt die Application aus. Im Log kann ich nachvollziehen das der Upload wohl geklappt hat, die temporäre Datei ordnungsgemäß gelöscht wird jedoch die eigentliche Datei nicht erstellt wird.

    Lokal in der myEclipse Umgebung funktioniert alles einwandfrei!

    Live Server / Debian + Tomcat6

    Webapps:
    Client
    Server
    Media

    Client soll die Datei nach Media/documents schreiben.

    Im Tomcat haben sämtliche Projekte den selben owner, Schreibrechte wurden def. gesetzt. Der Tomcat läuft unter dem owner User.

    In der catalina.policy habe ich testweise folgenden Eintrag ergänzt:

    permission java.io.FilePermission "${catalina.home}/webapps/media/documents","read,write";

    was jedoch auch nicht zu einem Ergebnis geführt hat.

    Hat jemand eine Idee?
    Vielen Dank!
    domfah

  • #2
    Ressourcen zwischen Webapps sharen

    Originally posted by domfah View Post
    Nach dem Upload, der Erstellung der temporären Datei steigt die Application aus.
    Wie genau? Fliegt eine Exception (wenn ja, welche), stürtzt der Tomcat ab? explodiert der Rechner? Etwas genauere Angaben würden die Fehlersuche erleichtern.

    Grundsätzlich darf ein Context nicht direkt auf resourcen eines anderen Contextes zugreifen. Ich glaub, auch das Setzen einer Permission ändert daran nichts. Wenn Du auf Ressourcen (in diesem Fall Files) in einem anderen Context zugreifen willst, dann geht das nur über den Webcontainer.

    An die Ressourcen kommst Du über den ServletContext. Der bietet eine Methode getContext(String appUrl). Mit der kommst Du an den anderen Context heran und kannst dir damit Zugriff auf dessen Ressourcen holen. Der Aufruf für Deinen Fall ist getContext("/Media")

    Ob's funktioniert hängt aber von den Einstellungen des Containers ab. Der muss das nämlich zulassen. Was bei Dir zu Hause in der Entwicklungsumgebung funktioniert, kann also in einem Shared-Hosting Environment schief gehen.

    Eine wirklich sichere Methode, die immer geht, ist im context Media ein Servlet über http anzusprechen, dass dann die Datei nach /Media/documents schreibt.

    Gruß ngomo
    http://www.winfonet.eu

    Comment

    Working...
    X