Este seria un ejemplo completo de como hacerlo.
Lo unico que veo que te falta es el contentLengh, pero no se si tendra importancia...
Código Java:
Ver originalFile pdfFile
= new File(contextPath
+ pdfFileName
);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);
response.setContentLength((int) pdfFile.length());
OutputStream responseOutputStream
= response.
getOutputStream(); int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
Un saludo