2010-09-24 82 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