Aufruf eines Servlets aus einer java-Klasse

Den ich gemacht habe (oder zumindest versucht zu machen) ein servlet ist, das wandelt einem JasperPrint-Objekt in das PDF-und
auch öffnet sich das PDF in einem neuen tab. Aber es scheint, wie mein code invoker ist nicht berufen, mein servlet und auch es ist nicht das werfen einer Ausnahme.

Wenn ich die URL direkt aus dem browser, es funktioniert Aufruf des Servlets, aber das gleiche passiert nicht aus meiner java-Klasse.

Invoker-Code:

URL url = new URL("http://localhost:8080/app/reportgenerator");
HttpURLConnection connection =  (HttpURLConnection)url.openConnection(); 

connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setDefaultUseCaches (false);
connection.setRequestProperty("Content-Type", "application/octet-stream");

ObjectOutputStream out = new ObjectOutputStream(connection.getOutputStream());
JasperPrint jasperPrint = new JasperPrint();
out.writeObject(jasperPrint);           
out.close();

Servlet-Code:

response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment; filename=\"report.pdf\"");

JasperPrint jasperPrint = null;

try {
    ObjectInputStream resultStream = new ObjectInputStream(request.getInputStream());
    jasperPrint = (JasperPrint) resultStream.readObject();
    resultStream.close();

    JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());

Was mache ich falsch?

  • Also, was passiert, wenn Sie anrufen, die von java ? Bekommst du irgendwelche Fehler ? Kannst du die stack-trace ?
  • Nein, war ich nicht immer alle Fehler. Das war wirklich seltsam, aber ich habe die Lösung gefunden und teilte es in der Antwort weiter unten. Vielen Dank für Ihre Antwort sowieso
  • mögliche Duplikate von Aufruf eines Servlets aus einer Java-Anwendung
InformationsquelleAutor Diego Urenia | 2012-07-04
Schreibe einen Kommentar