pdf文件无法在部署时加载,但它可以在本地成功运行

时间:2016-03-11 16:04:49

标签: java pdf jasper-reports

我需要你的帮助,我遇到了麻烦。

我必须对我的项目做一份报告。我做到了,效果很好。我从浏览器发送请求,我的java代码生成报告,通过jasper add response和chrome show it。

我们的系统工程师在最后一天部署项目。我的报告文件(.pdf)无法加载。我们不明白为什么? Chrome说“加载pdf文件失败”,Firefox和IE在记事本上显示字节码。我们查看日志文件,但没有错误,也没有例外。

这是我的java报告代码:

@Path("print")
@GET
@UnitOfWork
@Produces("application/pdf")
public Response print(@Context HttpServletResponse response,
                      @QueryParam("mbsFileOid") String mbsFileOid,
                      @QueryParam("followAfterDate") Date followAfterDate,
                      @QueryParam("fileOid") long fileOid,
                      @Context UriInfo allUri) throws IOException{
    OutputStream stream = response.getOutputStream();

    List<Commitment> commitments = commitmentDao.findAllCommitmensByFileOid(""+fileOid);
    List<CommitmentsReportValue> commitmentsReportValues = new ArrayList<>();
    DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    for (Commitment commitment : commitments) {
        CommitmentsReportValue commitmentsReportValue = new CommitmentsReportValue();
        commitmentsReportValue.setAmount(commitment.getAmount().toString());
        commitmentsReportValue.setSortId(""+commitment.getSortId());
        commitmentsReportValue.setCommitmentDate(sdf.format(commitment.getCommitmentDate()));
        commitmentsReportValues.add(commitmentsReportValue);
        if(commitment.getCommitmentStatus() == Commitment.CommitmentStatus.NotPaid)
            commitmentsReportValue.setStatus("Ödenmedi");
        else
            commitmentsReportValue.setStatus("Ödendi");
    }
    CoverCalculationDTO coverCoverCalculationDTO = mbsFileDao.getCoverCalculation(mbsFileOid,followAfterDate);
    coverCoverCalculationDTO.setFollowTotalInterest(""+coverCoverCalculationDTO.getFollowAfterTotalInterest());
    coverCoverCalculationDTO.setTotalBalance(""+coverCoverCalculationDTO.getLastTotalBalance());

    MbsFile mbsFile = mbsFileDao.findById(mbsFileOid);
    try {
        buildAggregateReport(mbsFile,coverCoverCalculationDTO,commitmentsReportValues).toPdf(stream);
    } catch (DRException e) {

        LOGGER.info(e.getMessage());

    }

    response.addHeader("Content-Disposition", "inline; filename=\"rapor.pdf\"");

    stream.flush();
    stream.close();
    return Response.ok().build();

以下是我本地服务器的屏幕截图:

enter image description here

以下是部署在chrome上的ss: enter image description here

这是来自firefox部署的ss: enter image description here

听起来很荒谬。它在我的本地计算机上运行良好,但在部署时无效,没有错误没有执行。

你能帮我吗?

0 个答案:

没有答案