JasperReport - PDF wird als Text im Browser angezeigt?

alan79

Mitglied
Hallo Forum
Ich versuche aus einer JSF Webapplication einen JasperReport auszuführen und das Ergebnis als PDF direkt im Browser anzuzeigen.

Der Report funktioniert wunderbar wenn ich als Ergebnis eine HTML page erzeuge.

Wenn ich den Report jedoch in ein PDF schreibe wird mir das PDF schlussendlich als Text im Browser dargestellt:
Code:
%PDF-1.4
%????
3 0 obj
<</Length 470/Filter/FlateDecode>>stream
x????O?0???W?>X{???a?hLPFbb| 2P"N'???{?`??	h????>w?;?;N?2`??d?Nv?$\?o]??F?);<E@?Flo????L?nQl?9cw??2I>???)????W??O?7?E?[?+?4?:?s<6[?.????e?|??l6x???#?n?C7?&??^??^f?>;?2?????{???*2?<e?:?_?1WZOGO?<]?=?@?
??Z?b=?0N?^6b??B?B???LsY??(?%?`=?$??N?$?????ê?K??` k????z0?wl?YN?h??]HoLpL??#?	I&?_Bo?1??Zue???/TW???4??T??:????E??:??T??t??|??^zmE??W'??s??7c?Z?zm?M??+d\?Siå?+ja4???(men
Y??	???)m?F[???H???^<?U?o?Hg
endstream
endobj
1 0 obj
<</Group<</Type/Group/CS/DeviceRGB/S/Transparency>>/Parent 4 0 R/Contents 3 0 R/Type/Page/Resources<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]/ColorSpace<</CS/DeviceRGB>>/Font<</F1 2 0 R>>>>/MediaBox[0 0 595 842]>>
endobj
5 0 obj
[1 0 R/XYZ 0 854 0]
endobj
2 0 obj
<</BaseFont/Helvetica/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1>>
endobj
4 0 obj
<</Type/Pages/Count 1/Kids[1 0 R]>>
endobj
6 0 obj
<</Names[(JR_PAGE_ANCHOR_0_1) 5 0 R]>>
endobj
7 0 obj
<</Dests 6 0 R>>
endobj
8 0 obj
<</Names 7 0 R/Type/Catalog/Pages 4 0 R>>
endobj
9 0 obj
<</Creator(JasperReports \(timerep_total_month\))/Producer(iText 2.1.5 \(by lowagie.com\))/ModDate(D:20090328115200+01'00')/CreationDate(D:20090328115200+01'00')>>
endobj
xref
0 10
0000000000 65535 f 
0000000552 00000 n 
0000000821 00000 n 
0000000015 00000 n 
0000000909 00000 n 
0000000786 00000 n 
0000000960 00000 n 
0000001014 00000 n 
0000001046 00000 n 
0000001103 00000 n 
trailer
<</Root 8 0 R/ID [<bc734bcf357f54dc41e87600a819a545><11643bd5300910f0cd41a25585fd9840>]/Info 9 0 R/Size 10>>
startxref
1282
%%EOF

Hier ist mein Code:
Code:
InputStream reportTemplate = this.getClass().getClassLoader().getResourceAsStream("com/antavis/groupware/reports/timerep_total_month.jasper");
		

		FacesContext context = FacesContext.getCurrentInstance();
		HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

		ServletOutputStream servletOutputStream;
		try {
			servletOutputStream = response.getOutputStream();

			Connection con = new DbConnection().establishConnection();
			JasperRunManager.runReportToPdfStream(reportTemplate, servletOutputStream, new HashMap(), con);
			con.close();
			response.setContentType("application/pdf"); 

			response.setHeader("Content-disposition", "attachment; filename=\"report.pdf\"");

			servletOutputStream.flush();
			servletOutputStream.close();

			context.responseComplete();

		} catch (Exception e) {
			
			e.printStackTrace();
		}

Was mache ich falsch? Vielen Dank für einen Tipp.
Grüsse
Alan
 
hallo procurve

hmm.. aber das mache ich doch in der folgenden Zeile:

Code:
response.setContentType("application/pdf");

Grüsse
Alan
 
Hier ist noch der HTTPHeader der Response:
Code:
http://localhost:8086/groupware/pages/timerep/timerep_mgmt.jsf

POST /groupware/pages/timerep/timerep_mgmt.jsf HTTP/1.1
Host: localhost:8086
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:8086/groupware/pages/timerep/timerep_mgmt.jsf
Content-Length: 105182
Cookie: JSESSIONID=89B8EDCF6C5074ED514284BBCBEE8C24
Pragma: no-cache
Cache-Control: no-cache
AJAXREQUEST=_viewRoot&j_id60%3Aj_id62=0&j_id60%3AmonthApprovecomboboxField=Select%20a%20month..&j_id60%3AmonthApprove=&j_id60_SUBMIT=1&javax.faces.ViewState=n4RkEg90K3k9dyofLGtxhc5oDsTMNJ%2F5srhm0%2FLJ1kirY4OWTjFE15%2Fbwxa0aPi5LBRqH69i%2BrlxtUGqKgh%2FRK3aEZ4NkoW1hW5gJS0aluGpdxeg9Yro9Wxl0Uld6CitoG07QGdQMugW3QoG5sAwGkciVYwbafPDfTOFQv2xugtw%2BcX4enmmlzqLvJtq3khahPIvZhh2592zrLcOw2YypKdFMQGMkdWHG7JCJ1a8G6NLn1dI0ujznAZ1dtS7J5r6quuQduMWDTaKXcWul7NJ4077fUe57eIK5aywjPo5mEwXw4lWyKTPlz4uJlA6e%2BMiiaHCWOlsDYiwA%2F7nXWqeb9Nh6ER0rWM5AwtYYxef3toXIvPUc3NF1kQydCYG3x4liv8h2qvWIPhPlNyfB%2FZYTM8POofLXKxyJL6RhL4Zzy37WE8nEYw8T%2FtIEs9Y4Q%2BhPcT1sdsB4MJXHQ6UTEgKhRO6%2F8OQ3TnxWtuY0HytN5N%2BD%2BDTSGzGaQXHFO561gvZQejyF%2B3yoE%2BynCT6xyNjGxuyQidWvBujS59XSNLo85wGdXbUuyea%2BlUnjO2E8j8bwQXjSWY9%2F0Ui3dGZElIe%2FdEvf%2BAlAt7KXTr1EU9RrEKf535vZPQwpazy2y5bbUWIq5Xegle1ZZU5BgM%2F0LxHMNFdNRI2QYrrN3BhD0rCrLm7QUMIBJq0UxuyQidWvBujS59XSNLo85wGdXbUuyea%2BqrrkHbjFg02il3FrpezSeO%2FSs1k%2Ffpu62NK0SGPxlL8qcgahCM0XEQ9xPWx2wHgwlcdDpRMSAqFE7r%2Fw5DdOfFId3RgKgMx69oYVQGkQsSuBuwJdaS5FtPtzm1dkTYl3O2L19mXQ%2BjKaTC4lF6DY017CZ83Vm4xPSX%2B200gmsrngfYMCyp0pNOjor7pVaMw8wp2JIY5uzP%2FY0rRIY%2FGUvzVoyIhcxoIxAekgtWEoD3x0%2FcHEH6fATnSo7i5T3dAfehFJqz%2F89UIvmAgKE0x3ByqEEEs4jgAOcXBmjp9OgOCF8OJVsikz5c%2BLiZQOnvjIomhwljpbA2IyuMhqN6TUm4rAhkCFjcf9xNgLovT9d7ZAWPRM6EAlNhjStEhj8ZS%2FHaBoNRmJg7SN%2FFmOqs6TIhsNXuVZsRfJZ0VLUZleN5SvLdmCAsRXhEaBhX4Y5mM9tmgu2Dqr8p50I7VZhgmSjV4BZQBpJZQmwwfn%2BNfyLNcbDV7lWbEXyWdFS1GZXjeUjPKQRlR4P%2B3SaWEdk8SgASIF%2Fsc42weLm27q%2Frn8zqEG7JCJ1a8G6NLn1dI0ujznAZ1dtS7J5r6rln3%2B1IGfjJR%2BiyPDg%2Be9LTQFPUk%2BWmzkM98E9h8pwTv6TWgDhQfBgwfn%2BNfyLNcbDV7lWbEXyWdFS1GZXjeUu2GtwTLRysXI6sAAmQp%2ByKfEImAksJM8aOiNzlCWbrOrJPbcLhmHOp%2BOY7h%2FmYt9Yr%2FIdqr1iD4T5Tcnwf2WExmA9mesCDi%2FmsJLr0WXaKALfy8nZPV9WX73xHfr63r73iqHQzg2cEMRDJ0JgbfHiWK%2FyHaq9Yg%2BE%2BU3J8H9lhM80KS8AP0zBjJCVg%2F%2BQMl1tBFV%2FEx40gvY0r [... GEKÜRZT DA TEXT ZU LANG ... ]
HTTP/1.x 200 OK
Server: Apache-Coyote/1.1
content-disposition: attachment; filename="report.pdf"
Content-Type: application/pdf
Content-Length: 1630
Date: Sun, 29 Mar 2009 11:44:54 GMT

Am Schluss weist der HTTPHeader korrekterweise "application/pdf" aus. Am Anfang erscheint jedoch auch noch ein "Content-Type: application/x-www-form-urlencoded; charset=UTF-8".. Ich kenne mich damit jedoch zuwenig aus. Kann es sein, dass das PDF File einfach irgendwie nicht korrekt ist?
 
Ich bin mir bezüglich des HTTPHeaders doch nicht ganz sicher.

Ich habe mir den HTTPHeader mit den folgenden Tools angesehen:

- Firefox Plugin "LiveHTTPHeader"
Dieses Plugin zeigt mir den Header wie in der Antwort zuvor eingefügt an.
- Firefox WebDeveloper Toolbar (Information>View Response Headers
Hier wird mir nur eine leere Seite angezeigt. Bei allen anderen Pages wird hier die HTTPHeader Info angezeigt.
Es scheint als wäre der HTTP Header leer
 
Du hast in deiner Response HEader aus dem Request drin, wenn ich das richtig sehe. Außerdem ist das Format der Response falsch - POST ist ein Schlüsselwort aus dem Request-Header...

Irgendwo läuft da beim Erzeugen der Response was ganz grob falsch.
 

Neue Beiträge

Zurück