Моя проблема в том, что когда я пытаюсь получить PDF-файл из веб-службы, он выдает мне эту ошибку "org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader не найден для типа носителя = application/pdf, type = class java.io.ByteArrayInputStream, genericType=class java.io.ByteArrayInputStream."
Моя проблема в том, что когда я пытаюсь получить PDF-файл из веб-службы, он выдает мне эту ошибку "org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader не найден для типа носителя = application/pdf, type = class java.io.ByteArrayInputStream, genericType=class java.io.ByteArrayInputStream." [code] @GET @Path("/reporte/{id}/{fecha1}/{fecha2}") @Produces("application/pdf") public Response generarResumenAnualPlanilla(@PathParam("id") Long id, @PathParam("fecha1") String fecha1,@PathParam("fecha2") String fecha2) { try { ByteArrayOutputStream reporte = usuarioService.generateUserReport(id, fecha1, fecha2);
// Retornar el archivo generado en la respuesta return Response.ok(new ByteArrayInputStream(reporte.toByteArray())) .type("application/pdf") .header("Content-Disposition", "attachment; filename=reporte1.pdf") .build(); } catch (Exception ex) { Logger.getLogger(UsuarioController.class.getName()).log(Level.SEVERE, null, ex); return Response.status(CodigoRespuesta.ERROR_INTERNO.getValue()).entity("Error generando el reporte").build(); } } --------------------- ------------------ public Respuesta reporte1(Long id, String fechaInicio, String fechaFinal) { try {
Request request = new Request("UsuarioController/reporte", "/{id}/{fecha1}/{fecha2}", parametros); request.get();
if (request.isError()) { return new Respuesta(false, request.getError(), ""); } ByteArrayInputStream reporteStream = (ByteArrayInputStream) request.readEntity(ByteArrayInputStream.class); if (reporteStream == null) { return new Respuesta(false, "Error obteniendo el archivo PDF.", ""); }
return new Respuesta(true, "", "", "ReportePDF", reporteStream);
} catch (Exception ex) {
Logger.getLogger(UsuarioService.class.getName()).log(Level.SEVERE, "Error con el reporte", ex); return new Respuesta(false, "Error con el reporte1.", "reporte1 " + ex.getMessage()); } }