Потрясающие. Это работает, и имеет большое объяснение того, почему

я есть класс ниже, который пытается вернуть некоторые данные в виде таблицы Excel. Я получаю ошибку

MessageBodyWriter не найден для типа носителя = application / octet-stream, type = class org.apache.poi.xssf.usermodel.XSSFWorkbook

Я также пытался@Produces("application/vnd.ms-excel"), но получили похожие ошибки. У кого-нибудь есть предложение относительно того, как я могу получить это, чтобы вернуть электронную таблицу? В прошлый раз, когда я получил сообщение об ошибке, похожее на это (жалуясь, что не удалось найти автора тела сообщения для arraylist), я просто обернул его в общий объект. Этот трюк не сработал на этот раз.

@PermitAll
@Path("uploadWorkbook")
public class ExcelUploadResource {

    @Context
    ResourceContext resourceContext;

    @Inject
    JobService jobService;

    @GET
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response list() {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Job definitions");

        int rowNum = 0;
        for(Job job : jobService.list()){
            Row row = sheet.createRow(rowNum++);
            int cellNum = 0;
            for(String field : job.toList()){
                Cell cell = row.createCell(cellNum++);
                cell.setCellValue(field);
            }
        }

        GenericEntity<XSSFWorkbook> entity = new GenericEntity<XSSFWorkbook>(workbook) {};

        ResponseBuilder response = Response.ok(entity);
        response.header("Content-Disposition",
            "attachment; filename=jobs.xls");
        return response.build();
    }   
}

Ответы на вопрос(1)

Ваш ответ на вопрос