2016-10-04 9 views
1

Вот код для моего JAX-RS ПОЛУЧИТЬ сервисJAX-RS POST не в состоянии вернуть пустой XLSX в качестве типа пантомимы

@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 
@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(); 
} 

Выпуск

  • xlsx, генерируемый GET, прекращается,
  • , но один из POST дает формат файла ошибок или расширение не является действительным

Очки отметить

  1. Оба кода точно так же для создания заполняйте XSLX файлу
  2. Пробовал генерации пустой xlsx файл из java main, тот же код, работает отлично
  3. Я также проверил временные файлы на tomcat, они подходят как для GET & POST, но когда я загружаю их из IE браузер я получаю Ошибка открытия файла для POST

Только разница @GET & @post и способ paymentIds разобраны, но они не используются, как мы генерируем пустые файлы (на данный момент, будет использовать позже, чтобы ударить DB и получите некоторые данные)

Действительно Не уверен, что не так в коде.

ответ

0

проблема была на стороне клиента В запросе GET посылает правильный responseType заголовок: «ArrayBuffer», в POST я не отправлял этот заголовок, следовательно, вопрос