JBOSS: Fehler beim anzeigen von Office Dokumenten

Van-Fanel

Grünschnabel
Hi

Ich habe ein kleines Problem mit meiner Webanwendung für den JBoss.
Vielleicht hat einer von euch ja eine Idee dazu.

Folgendes Scenario:

In meinem Servlet realisiere ich einen Download:

Hier ein Code Auszug:
Code:
   public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) throws Exception {
        ActionForward forward = null;

        try {
            Dokument dokument = Dokument.anzeigen(...);
            response.setContentType(dokument.getContentType());
            response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
            response.setHeader("Content-disposition", "inline;filename=\"" + dokument.getName() + "\"");
            ServletOutputStream outStream = response.getOutputStream();
            byte[] datei = dokument.getDatei(true);
            response.setContentLength(datei.length);
            outStream.write(datei);
            outStream.flush();
            outStream.close();

...

Auf diese Weise sende ich dem Browser das Document.
Bis hierhin klappt alles wunderbar, der User kann nach dem Aufruf der Seite die Datei problemlos runterladen.
Beim Internet Explorer (version 6 und 7) stellt sich jedoch folgendes Problem:
Drückt er auf "Öffnen" und der Browser lädt Word / Excel oder Powerpoint als Modul in den Browser, wird das Dokument zwar angezeigt, der Application Server schmeist jedoch einen Haufen von NullPointerExceptions.
Das Dokument ist dabei ohne Fehler und vollständig anzeigbar.

Hier einmal der Stacktrace des Servers:
15:20:45,217 ERROR [ContainerBase] Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.menue_jsp._jspService(menue_jsp.java:106)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:138)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)

Diese Fehler werden nicht von der Applikation erzeugt, bzw. ich meine damit, es ist keine Methode / kein Script der Anwendung im StackTrace vorhanden.
Wenn ich in die betroffene Methode debugge erhalte ich keinen Fehlermeldungen und alles läuft flüssig. Erst später im JBOSS Container selbst wird diese NullPointerException erzeugt.
Ich bin leider mit meinem Latein am Ende.

Vielleicht ist hier ja jemand der ein wenig mehr Wissen besitzt und mir einen Tipp geben kann.
Mit den HTTP Headern hab ich bereits einiges ausprobiert und auch wenn ich Caching erlaube oder sonst irgendwelche Einstellungen weglasse / vornehme kommen trotzdem diese Exceptions.
Im Firefox und bei PDF Dokumenten tritt dieser Fehler nicht auf.
Das verwunderliche ist halt, dass die Dokumente ja fehlerfrei und vollständig sind! :suspekt:

Eine sehr seltsame Geschichte.

Vielen dank schonmal für euer Aufmerksamkeit.

Gruß
Vanfanel
 

Neue Beiträge

Zurück