2013-05-17 28 views
0

我有一個運行在Tomcat 6容器中的簡單JAX-RS服務。通過附加.xml.json,是否有可能在瀏覽器中顯示文本和XML,與Rails相似?JAX-RS:基於URL模式檢索替代格式

我有的服務是基於this tutorial

+0

查看本教程.... http://tutorial4java.blogspot.in/2013/05/restful-web-service-basic-program-using.html 您可以在顯示器上顯示xml,html或純文本瀏覽器.... – NamingException

+0

謝謝。根據@Produces聲明產生的內容,客戶端將收到「最合適的」格式。但是,客戶端必須使用「接受」(例如「Accept:text/plain」)來指定可能的格式。我的問題是,是否有其他方式比使用接受請求屬性,例如在Rails中,您只需將「.xml」附加到URI。 – xSNRG

回答

0

簡短的回答是沒有,JAX-RS不允許您只需通過追加「XML」或「JSON」的URL來切換響應內容類型。

該規範明確定義瞭如何進行內容協商 - 通過客戶端的Accept HTTP頭與服務器端的@Produces註釋進行匹配。因此,按照規範,如果你想獲得不同的內容類型,那麼你應該在Accept標題中指定,並且該內容類型將被返回(只要服務器支持它)。儘管如此,JAX-RS實現可以自由地實現自定義(非可移植)擴展,以支持類似於您所描述的行爲。 RESTEasy就是一個例子,它允許您將所需的內容類型定義爲查詢參數Section 17.2 - Query String Parameter-based negotiation

您還可以設計自己的資源類以輕鬆支持所需的行爲 - 一些示例可以在Apache CXF Content Negotiation guide中看到。