@@在JAX-RS中产生注释

问题描述 投票:2回答:3

我的服务方法产生此MediaTypes之一,它可能产生pdfexcel文件或其他文件。

@Produces({"application/pdf","application/vnd.ms-excel"...

[我的问题] >>

我的服务即使返回application/pdf,也始终返回excel的响应类型。为什么?

比我重新排列了MediaTypes

@Produces({"application/vnd.ms-excel","application/pdf",...

现在再次为所有响应都输入application/vnd.ms-excel类型,为什么?

我正在为客户端使用com.sun.jersey API,并通过使用]获得类型>

clientResponse.getType()

可能我想我误解了@Produces注释的概念。

请澄清。


以下是我的Service方法的代码。

response = Response.ok((Object) file);//file is Object of File
response.header("Content-Disposition","attachment; filename="+filename);
//filename can be a.pdf b.xlsx etc
return response.build();
            

我的服务方法产生此MediaType之一,它可能产生pdf或excel文件或其他。 @Produces({“ application / pdf”,“ application / vnd.ms-excel” ...我的问题我的服务返回响应类型...

java annotations jax-rs
3个回答
3
投票

documenation中所述:

@GET
@Produces({"application/xml", "application/json"})
public String doGetAsXmlOrJson() {
    ...
}

3
投票

JAX-RS方法应将首选内容类型基于请求的Accept标头的值。如果失败,则应默认为指定的第一个。


0
投票

@Produces批注由JAX-RS实现用于根据请求的accept标头将传入请求绑定到您的资源方法之一。

© www.soinside.com 2019 - 2024. All rights reserved.