JAX-RS POST无法将空xlsx作为MIMEtypes返回

这是我的JAX-RS GET服务的代码

@GET @Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") @Path("/xlsReport") public Response viewXlsReport(@QueryParam("paymentIds")String paymentIds) throws IOException { List spaymentIds = Arrays.asList(paymentIds.split(",")); XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet s1 = wb.createSheet("Some Details"); File f = new File("Some Details.xslx"); FileOutputStream fos = new FileOutStream(f); wb.write(fos); fos.close(); return Response.ok((Object)file).build(); } 

和POST服务是一样的

 @POST @Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") @Path("/exportReport") @Consumes(MediaType.APPLICATION_JSON) public Response viewXlsReport(String ids) throws IOException { List<string> sIds = new ArrayList<String>(); StringTokenizer tokens = new StringTokenizer(ids,"&"); // populate sIds , not used in both GET & POST Version XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet s1 = wb.createSheet("Some Details"); File f = new File("Some Details.xslx"); FileOutputStream fos = new FileOutStream(f); wb.write(fos); fos.close(); return Response.ok((Object)file).build(); } 

问题

  • 从GET生成的xlsx打开罚款,
  • 但是POST中的错误文件格式或扩展名无效

要点注意

  1. 两个代码都完全一样来生成空白的 xslx文件
  2. 试图从Java主,相同的代码生成空白的xlsx文件,运行良好
  3. 我也检查了临时文件在tomcat他们既可以GET和POST,但是当我从IE浏览器下载他们,我得到错误开放POST文件

唯一不同的是@GET&@POST和paymentIds被parsing,但是它们不被使用,因为我们正在生成空白文件(现在,稍后将用于打DB和获得一些细节)

真的不知道代码中有什么错误。

问题是在客户端在GET请求发送正确的头responseType:'arraybuffer',在POST我没有发送这个头,因此问题