Jersey JAX-RS如何选择图像mimetype?

Jersey JAX-RS如何选择图像mimetype?,jersey,jax-rs,Jersey,Jax Rs,有没有办法选择最好的Acceptmimetype进行图像处理 我有一个类似这样的资源 @GET @产生({“image/jpeg”、“image/png”}) 公众响应readResizedImage( @上下文请求, @上下文HttpHeaders HttpHeaders, @QueryParam(“宽度”)最终整型宽度, @查询参数(“高度”)最终整数高度){ 最终列表变量=Variant.mediaTypes( 新媒体类型(“图像”、“jpeg”)、新媒体类型(“图像”、“png”)。bu

有没有办法选择最好的
Accept
mimetype进行图像处理

我有一个类似这样的资源

@GET
@产生({“image/jpeg”、“image/png”})
公众响应readResizedImage(
@上下文请求,
@上下文HttpHeaders HttpHeaders,
@QueryParam(“宽度”)最终整型宽度,
@查询参数(“高度”)最终整数高度){
最终列表变量=Variant.mediaTypes(
新媒体类型(“图像”、“jpeg”)、新媒体类型(“图像”、“png”)。build();
//究竟为什么变体是空的?
如果(!variants.isEmpty()){
最终变量=请求。选择变量(变量);
LOGGER.log(Level.INFO,“{0}”,variant.getMediaType().toString());
}
最终列表可接受的媒体类型=
httpHeaders.getAcceptableMediaTypes();
对于(MediaType acceptableMediaType:acceptableMediaTypes){
LOGGER.log(Level.INFO,“acceptableMediaType:{0}/{1}”,
新对象[]{acceptableMediaType.getType(),
acceptableMediaType.getSubtype()});
}
返回null;
}
我使用以下命令尝试了此资源

$ curl -v -H "Accept: */*" \
-H "Accept: image/*;q=0.2" \
-H "Accept: image/jpeg;q=0.5" \
-H "Accept: image/png;q=1.0" \
http://.............
和服务器打印

acceptableMediaType:image/png
acceptableMediaType:*/*
acceptableMediaType:image/jpeg
acceptableMediaType:image/*
问题:

如何选择正确(非通配符)的mime类型?


我必须有一个用于处理图像字节以重新调整大小的方法。

如果让Jersey决定,这是最简单的方法-即有两种方法,一种是生成图像/png,另一种是生成图像/jpeg。Jersey将根据传入请求的accept标头中各个媒体类型的质量参数调用正确的方法。

如果由Jersey决定,最简单的方法是使用两种方法,一种是生成图像/png,另一种是生成图像/jpeg。Jersey将根据传入请求的accept标头中各个媒体类型的质量参数调用正确的一个。

请参阅JAX-RS规范()第3.8节请参阅JAX-RS规范()第3.8节