7
ho questo servizio con RESTEasy:immagine grezzo in RESTEasy
@GET
@Path("/{name}")
@Produces("image/jpeg")
public BufferedImage get(@PathParam("name") String name) {
Monitor m = Monitor.getMonitor(name);
if (m == null) {
return null;
}
return m.getImage();
}
allora ottengo dopo la richiesta
Could not find MessageBodyWriter for response object of type: java.awt.image.BufferedImage of media type: image/jpeg
Esiste un "modo diretto" per ottenere l'immagine nella risposta?
Grazie a @Robert per le indicazioni. qui il codice di lavoro:
@GET
@Path("/{name}")
@Produces("image/jpeg")
public byte[] get(@PathParam("name") String name) {
Monitor m = Monitor.getMonitor(name);
if (m == null) {
return null;
}
ByteArrayOutputStream bo = new ByteArrayOutputStream(2048);
try {
ImageIO.write(m.getImage(),"jpeg",bo);
} catch (IOException ex) {
return null;
}
return bo.toByteArray();
}
Non sono sicuro del commento su headless, ho eseguito headless = true e funziona come previsto. – PeterMmm
Beh, stavo dando per scontato che le classi 'Monitor' e' ImageIO' non funzionassero in modalità headless. Se lo fanno, bene! –
@Produces ("image/jpeg") mi mancava questo, invece ho usato @Produces (MediaType.WILDCARD) – Sagar