0

這是我寫練成方法,它返回javax.ws.rs.core.ResponseHTTP 204錯誤響應發送文件時,REST

public Response writeToExcel(UserDeatilsVOWrapper listBook) { 
    XSSFWorkbook workbook = new XSSFWorkbook(); 
    XSSFSheet spreadsheet = workbook.createSheet("Resource Information"); 

    int rowCount = 0; 
    createHeaderRow(spreadsheet); 
    for (UserDetailsVO detailsVO : listBook.getUserDetailsList()) { 
     Row row = spreadsheet.createRow(++rowCount); 
     writeBook(detailsVO, row); 
    } 
    Response response = null; 

    try (FileOutputStream outputStream = new FileOutputStream(new File("ResourceInformation.xlsx"))) { 
     workbook.write(outputStream); 

     // header required to enable download pop-up and set file name 
     Response.ok().header("Content-Disposition", "attachment; filename=" + "ResourceInformation.xlsx").build(); 
    } 

    catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return response; 
} 

這是我的web服務:

@POST 
    @Path(WebServiceConstants.DOWNLOAD_EXCEL) 
    @Consumes(MediaType.APPLICATION_JSON) 
    public Response getFile(UserDeatilsVOWrapper wrapper) { 
    Response respose=new ExportToExcel().writeToExcel(wrapper); 
    return respose;} 

我收到一個HTTP204錯誤。我正在使用郵遞員。我知道,在寫入excel方法以及嘗試發送文件和響應時,我犯了一個很大的錯誤。 也有沒有任何可能的方式來寫入REST響應的文件對象而不保存服務器上的文件?我在這裏做得很糟糕。任何幫助表示讚賞。

回答

0

我看不到您將文件設置爲響應的位置。通常你會做這樣的事情

File file = new File("ResourceInformation.xlsx")) 

// Do your excel-writing here... 

ResponseBuilder response = Response.ok((Object) file); 
response.header("Content-Disposition", "attachment; filename=" + "ResourceInformation.xlsx"); 
return response.build(); 
+0

非常感謝,夥計,你是一個saviour.I知道,我犯了一個大錯。 – Kid101

+0

不客氣。 :-) – Frank

相關問題