R4izen
Novembro 20, 2011, 1:26pm
#1
Tem como restornar uma imagem utilizando jersey?
Ex:
Tenho uma imagem em meu banco, “pego” esta imagem com o hibernate.
@XmlRootElement
@Table(name = "TB_IMAGEM")
@Entity
public class Imagem implements Serializable{
@Id @GeneratedValue
private long id;
@Lob
@Column(name = "imagem")
private byte[] imagem;
//getters e setters....
}
Teria como retornar esta imagem para o cliente utilizando Jersey?
fiz teste com Json e xml que funcionaram, porem não encontrei nada sobre imagens.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.springframework.stereotype.Component;
@Component
@Path("/imagem")
public class ImagemResource {
@GET
@Produces("image/png")
public byte[] produces () throws IOException{
File file = new File("C:\\Users\\alexandre\\Desktop\\plus.png");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[fis.available()];
fis.read(data);
return data;
}
}
Testei aqui com Jersey 1.9 e Spring 3.0.0. Foi tranquilo.
[]'s
gapler
Dezembro 1, 2011, 8:19am
#4
Caros - desculpe reviver o tópico, mas como fazer para enviar essa imagem via JSON?
Retornar uma imagem via JSON fere os conceitos de REST. Talvez o que você queira possa ser mais fácil se, ao invés de retornar a imagem como JSON, você retornar um link para ela (dê uma pesquisada sobre HATEOAS para entender do que eu estou falando).
[]'s