Download PDF mit JSF

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Guten Morgen,

ich habe bereits mit folgender Implementierung versucht ein Dateidownload eines PDFs zu bewerkstelligen, was leider erfolglos blieb:

Code:
public void downloadLink(ActionEvent e)
	{
		  FacesContext context = FacesContext.getCurrentInstance(); 
	      HttpServletResponse response = (HttpServletResponse)context.getExternalContext(). getResponse(); 
	      File file = new File("MyPDF.pdf"); 
	      StringBuilder type = new StringBuilder("attachment; filename="); 
	      type.append(file.getName()); 
	      response.setContentLength((int) file.length()); 
	      response.setContentType("application/octet-stream"); 
	      response.setHeader("Content-Disposition", type.toString()); 
	      
	      try {
	      InitialContext ctx = new InitialContext();
			PDFRemote pdfGenerator = (DienstRemote) ctx
					.lookup("URL zur EJB Bean");
	      
	       OutputStream os = response.getOutputStream(); 
	       ByteArrayOutputStream bos = pdfGenerator.generatePDF();
	       
	       bos.writeTo(os);
	       os.flush();
	       
	      }catch(NamingException e1)
	      {
	    	  e1.printStackTrace();
	      }
	      catch (FileNotFoundException e2) { 
	       
	         e2.printStackTrace(); 
	      } catch (IOException e3) { 

	         e3.printStackTrace(); 
	      }
	      
	}

Per EJB-Stateless-Bean wird also ein ByteArrayOutputStream erzeugt, welcher beim Debugging auch den Aufbau des PDFs durchläuft.

Der Downloadlink:
Code:
<h:commandLink value="PDFDownload" style="text-decoration: none;" 
   			actionListener="#{pdfHandler.downloadLink}" action="download" />
Die Datei kann auch heruntergeladen werden. Allerdings erscheint mir beim Öffnen des PDFs die Meldung, dass die Datei beschädigt sei.
Die Größe der Datei beträgt dabei 1,58 KB anstatt wie vorgesehen 3 KB.

Kann mir eventuell einen Hinweis geben, wo der Ursprung des Problems ist?
 
G

Guest

Gast
Es sind 2722 Bytes.

Bei einer lokalen Ausführung, also wenn ich das PDF ohne Downloaddialog abspeichere, funktioniert es korrekt:

Code:
DienstBean bean = new DienstBean();
		ByteArrayOutputStream bos = bean.generatePDF();
		if (bos != null) {
			System.out.println("Filebytes !=null!!! ;-)");
			try {
				System.out.println("Die Anzahl der Bytes: "+bos.size());
				OutputStream out = new FileOutputStream("D:\\MyPDF.pdf");
				bos.writeTo(out);
			} catch (FileNotFoundException e) {
				// TODO Automatisch erstellter Catch-Block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Automatisch erstellter Catch-Block
				e.printStackTrace();
			}
		}
		else
		{
			System.out.println("FEHLER: FILEBYTES SIND NULL!!");
		}

Auch hier ist die Anzahl der Bytes übrigens 2722.
 
G

Guest

Gast
Mir ist darüber hinaus beim Debugging aufgefallen, dass die Methode ausgeführt wird, BEVOR der Download-Dialog geöffnet wird?

Ist das normal?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JDK 21 Download-Versionen Java Basics - Anfänger-Themen 2
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
F iText download/installieren Java Basics - Anfänger-Themen 22
J download zip von einer url Java Basics - Anfänger-Themen 13
K First-Source und Backup Download Java Basics - Anfänger-Themen 5
J Java FTP Download lädt datein nicht Ordentlich herunter Java Basics - Anfänger-Themen 9
D FTP Download Data Java Basics - Anfänger-Themen 7
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
O Download Java Java Basics - Anfänger-Themen 2
B Apache: jar-Datei Download als jar und nicht als zip Java Basics - Anfänger-Themen 4
S Https Verbindung aufbauen zum File Download Java Basics - Anfänger-Themen 7
I API-Download Java Basics - Anfänger-Themen 7
C Applikation zum Download anbieten Java Basics - Anfänger-Themen 5
C Java Download Java Basics - Anfänger-Themen 10
O download einer Datei Java Basics - Anfänger-Themen 2
Developer_X Download Problem Java Basics - Anfänger-Themen 2
D Java Download in mehrere Parts aufteilen Java Basics - Anfänger-Themen 2
I API download Java Basics - Anfänger-Themen 4
H Startfehler bei unbekannten Programm (Download) Java Basics - Anfänger-Themen 5
M Ordner Download Java Basics - Anfänger-Themen 11
F Dateigenerierung und -download in JavaEE Java Basics - Anfänger-Themen 4
saxman Java Source Code Download Java Basics - Anfänger-Themen 2
L JRE Download-Seite Java Basics - Anfänger-Themen 3
L java API zum Download Java Basics - Anfänger-Themen 2
J Download von Dateien Java Basics - Anfänger-Themen 3
J Dateinamen für Download ändern! Java Basics - Anfänger-Themen 3
S Download einer Datei vom FTP-Server Java Basics - Anfänger-Themen 4
B API download Java Basics - Anfänger-Themen 8
P Problem beim Download von einem FTP Server Java Basics - Anfänger-Themen 5
B Kleines Download-Maneger als Applet Java Basics - Anfänger-Themen 34
E Direkter Datei Download von csv bzw. PDF Dateien Java Basics - Anfänger-Themen 3
M download von daten Java Basics - Anfänger-Themen 4
megachucky wo gibts icons, images und sound dateien zum download? Java Basics - Anfänger-Themen 2
S download j2se 1.4.2 sdk Java Basics - Anfänger-Themen 7
E MS Java SDK Download Java Basics - Anfänger-Themen 3
G File up-/ und download Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben