Domino 9 und frühere Versionen > ND8: Entwicklung

"Invalid file handle" bei Zugriff auf MIMEEntity

<< < (3/5) > >>

Ralf_M_Petter:
Was meinst du im speziellen mit den Content Type Header bei den Bildern zu setzen. Das mit den Bildern auf diese Art machen wir erst seit ein paar Tagen so dynamisch. Früher haben wir Sie im Apache zwischengespeichert. Treten bei dir im Browser irgendwelche Probleme auf. Bei unseren Tests sind nämlich keine aufgetreten.

Grüße

Ralf

masseur81:
Die Probleme machen sich nur bemerkbar, wenn du die URL zu den Bildern direkt aufrufst.
Dein Browser fragt dann irgendwas mit "Speichern unter...", anstelle das Bild anzuzeigen. Das deutet auf einen Header-Fehler in der HTTP Response hin. Entweder fehlt der Content-Type (am wahrscheinlichsten) oder es ist explizit ein Header drin, der zum "Download" zwingt (heißt glaub ich Content-Disposition.

Evtl. kann das beim Aufruf der Seite in anderen (exotischen) Browsern zu Problemen führen. Auch das Caching oder der HTTP Server werden davon beeinflusst. (Z.B. lässt sich einstellen, dass - wenn kein Header vorhanden, dann text/plain rausgeben)
Ist kein großes Problem, denn sonst hättest du es schon bemerkt. ;-)

flaite:
Vielleicht gibts noch den Weg, dass du die MIMEEntity in ThreadLocal legst? 

Ralf_M_Petter:
Danke für den Hinweis, aber es war eine explizite Anforderung, dass er beim Direktaufruf eines Bildes diese Vorgehendsweise macht, damit das auf unserer Bilderdownloadseite so funktioniert. Aber ich werde mir mal überlegen, ob ich es so gestalten kann, dass es nur dort wo es Sinn macht so läuft.

Übrigens wenn du mal ein Demoservlet mit Code posten kannst, dass nicht so performt, dann kann ich dir gerne ein paar Tricks verraten wie wir es gemacht haben. Ich glaube ich bin ganz gut darin, da wir dass ja imerhin schon seit R5 so machen.

Grüße

Ralf

masseur81:
Danke für das Angebot. Eine Frage hab ich nun noch: Nachdem ich mit meiner Strategie auf einen OutOfMemoryError gestoßen bin, zwei Fragen:

1. Wenn ich ein Document recycle, dann ist das C-Objekt weg, die Java-Referenz auf das Document behalte ich aber noch. Was belegt davon nun den (meisten) Speicher?

2. Am Ende eines Requests kann ich die Sessions recyceln, aber NotesThread.stermThread() kann ich da nicht aufrufen, weil derselbe Thread ja bei einem weiteren Request wiederkommt. (ThreadPool) Wo soll ich das dann bitteschön überhaupt aufrufen? Habe die Erscheinung, dass mein Application Server (WAS6.1) abstürzt, wenn ich nach NotesThread.stermThread() wieder NotesThread.sinitThread() aufrufe.  :-:

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln