2010-09-24 61 views
4

我可以在我的RESTEasy服务中更改@Produces注释参数的值吗?
我给出的任务是将多种格式的报告集成到现有的报告系统中。 所以动态改变@Produces注解参数会对我有很大的帮助。
在此先感谢!动态更改RESTEasy服务返回类型

回答

6

让你的方法返回一个Response对象,并尝试这样的事情;

int status = 200; 
String type = MediaType.APPLICATION_XML; 
String response = "<hello>world</hello>"; 
return Response.status(status).type(type).entity(response).build(); 

我认为响应中的类型将覆盖你注释的内容,但是我没有测试它。

+0

Yeap ...它覆盖了注释类型。 – Andrew 2010-09-24 15:07:42

+0

谢谢!这个答案解决了我的问题! :) – sabadow 2014-04-04 18:40:04

3

您可以在@Produces中指定几个条目。你的请求应该提及你想要哪种格式(如mime类型)作为结果。

例子:

@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) 
+0

谢谢南大!似乎是一个很好的解决方案...在这里如何PDF? – Andrew 2010-09-24 13:05:08

+0

我无法让它与PDF一起工作......任何想法? – Andrew 2010-09-24 13:48:37