MessageBodyWriter no encontrado para media type = application / octet-stream, type = class org.apache.poi.xssf.usermodel.XSSFWorkbook

Tengo la siguiente clase que intenta devolver algunos datos en forma de una hoja de cálculo de Excel. Recibo el error

MessageBodyWriter no encontrado para media type = application / octet-stream, type = class org.apache.poi.xssf.usermodel.XSSFWorkbook

También he probado@Produces("application/vnd.ms-excel"), pero obtuve errores similares. ¿Alguien tiene una sugerencia sobre cómo puedo hacer que esto devuelva una hoja de cálculo? La última vez que recibí un mensaje de error similar a este (quejándose de que no se pudo encontrar un escritor de cuerpo de mensaje para la lista de arrays), lo envuelvo en una entidad genérica. Ese truco no funcionó esta vez.

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta