我仍在閱讀有關REST解決方案,並決定使用RESTlet來實現WebServices,使用Jackson爲JSON提供響應。使用Eclipse導出一個獨特的戰爭持有RESTlet和Servlet一起工作的Tomcat
在此之前,我使用了Axis2,但其性能令我害怕:一個簡單的請求需要花費數百毫秒才能返回客戶端,並且客戶端和服務器都在同一臺機器上! (我會重做基準測試,比以前做得更好,現在比較直接調用Axis2和RESTlet + Jackson。)
我知道RESTlet可以用於很多容器,並且我發現了一些教程來集成Tomcat和RESTlet。但據我瞭解,它是爲了將一個RESTlet應用程序直接綁定到Tomcat。
我的問題是,使用Axis2,我可以擁有一個獨特的eclipse項目,在該項目中,我開發了處理瀏覽器請求並提供HTML頁面的servlet,以及爲非瀏覽器客戶端提供服務的Axis2 WebService。這個Eclipse項目作爲一個獨特的戰爭出口,持有我所有的代碼和所有必需的罐子,然後我將它部署在Tomcat上,並從一個獨特的服務器上部署,我可以將它全部運行。
在例如:
- http://host.com/projectname/operation被綁定到一個Servlet和爲HTML頁面,而
- http://host.com/projectname/services/是Axis2的主要頁面的WebService信息,鏈接到WSDL等,並
- http://host.com/projectname/services/operation不相同例如http://host.com/projectname/operation,但接收SOAP請求並提供SOAP響應。
我想要做同樣的事情的Restlet:
- http://host.com/content提供一個HTML頁面列表的鏈接內容,
- http://host.com/content/123提供與內容123的數據的HTML頁面,
- GET http://host.com/webservice/content返回JSON數組列出指向內容的鏈接,
- GET http://host.com/webserivce/content/123返回一個包含內容123數據的JSON對象。
- http://host.com/content/123/update接收傳統POST參數對DB更新內容123,並用更新後的數據返回HTML,
- PUT http://host.com/webservice/content/123接收JSON 對象,更新它的數據庫,並返回與從DB查詢的數據 另一個JSON對象。
正如你所看到的,必須通過Eclipse來完成「魔術」,才能通過正確的web.xml配置創建這場戰爭。它適用於Axis2,但我無法知道如何使用RESTlet進行操作。
另一個問題。如果我不需要Servlet並且只需要一個RESTlet WebService,那麼對於像十幾個客戶端那樣併發數百個請求,哪個容器最有效?