2014-01-27 72 views
3

我必須編寫一個使用Excel文件的Restful服務將它轉換爲一個類並將其寫入DataBase中。如何編寫使用Excel文件的RestService Post?

@POST 
@Path("/insertDataInDB) 
@Consumes(MediaType.???) 
public Response insertDataInDB(???) { 
    //do Stuff 
} 

我的第一個想法是使用ByteStream,而不是用Apache POI來解釋Stream。 但在這裏我有一個例外:「org.jboss.resteasy.spi.UnsupportedMediaTypeException」

@POST 
@Path("/insertDataInDB") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void insertDataInDB(@FormDataParam("inputfile") 
File inputfile) { 
    //do Stuff 
} 

有沒有人一個想法是什麼的MediaType使用什麼樣的Java數據類型的?

或者有人更好的主意?

回答

3

只爲有同樣問題的人,這對我有效。

@POST 
@Path("/insertDataInDB") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void insertDataInDB2(@FormDataParam("inputfile") 
MultipartFormDataInput inputfile) { 

    Map<String, List<InputPart>> uploadForm = inputfile.getFormDataMap(); 
    List<InputPart> inputParts = uploadForm.get("inputfile"); 

    //i have only one inputPart 
    InputPart inputPart = inputParts.get(0); 

    try { 
     InputStream inputStream = inputPart.getBody(InputStream.class, null); 

     XSSFWorkbook workbook = new XSSFWorkbook(inputStream); 
     XSSFSheet sheet = workbook.getSheetAt(0); 
     System.out.println(sheet.getSheetName()); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
}