2014-04-10 57 views

回答

1

由於this Java EE tutorial狀態

的@Produces註釋用於指定MIME媒體類型或 表示資源可以產生併發送回客戶端。

所以它實際上並不告訴JAX-RS在響應中產生兩種內容類型。它最初作爲確定使用哪種處理程序方法的指標。如果您在同一路徑上有兩個GET@Produces將有助於選擇最合適的路徑。

在您的投射中,該方法可以產生兩種內容類型。它最終產生哪一個取決於請求中的Accept標題。

,從同樣的教程

如果資源類是能夠產生多於一個的MIME媒體類型 ,選擇由客戶端所申報將對應於最 可接受的媒體類型的資源的方法的。更具體地說, HTTP請求的Accept頭部聲明瞭最可接受的 。

您返回String類型的事實表明您的實施需要產生正確的內容。相反,如果您返回某種Pojo,我相信Jersey會使用適當的轉換工具來生成XML(可能使用JAXB)或JSON(也許使用Jackson)。

+0

我應該解析請求接受標題並做一個if/else分支嗎? – tarrsalah

+0

@tarrsalah是的,這似乎適用於'String'返回類型。我相信應該有一個'@ HeaderParam'。 –

相關問題