Я изучаю REST, используя Джерси.Мне удалось создать приложение клише Hello World.Теперь (только для учебных целей) я пытаюсь вернуть файл изображения через поток байтов.Тем не менее, я получаю IOException
, что файл не может быть прочитан.Ниже приведен мой класс ресурсов:
@Path("/image/{file}")
public class ImageResource
{
@Context
private UriInfo uri;
@GET
@Produces("image/jpg")
public Response getFullImage(@PathParam("file") String fileName)
{
Response response = null;
String contextRoot = getUri().getBaseUri().toString();
try
{
BufferedImage image = ImageIO.read(new File(contextRoot + "/images/" + fileName));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", baos);
byte[] imgBytes = baos.toByteArray();
response = Response.ok(new ByteArrayInputStream(imgBytes)).build();
}
catch (IOException e)
{
System.err.println("Error reading image file..." + e.getMessage());
e.printStackTrace();
}
return response;
}
private UriInfo getUri() {
return uri;
}
}
Изображение хранится в WebContent/images/image001.jpg
, и я использую URL: http://localhost:8080/REST/image/image001.jpg
для обращения к ресурсу.
Может кто-нибудь сообщить мне, пожалуйстапричина исключения ???