2013-02-20 111 views
1

我仍在閱讀有關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上,並從一個獨特的服務器上部署,我可以將它全部運行。

在例如:

我想要做同樣的事情的Restlet:

正如你所看到的,必須通過Eclipse來完成「魔術」,才能通過正確的web.xml配置創建這場戰爭。它適用於Axis2,但我無法知道如何使用RESTlet進行操作。

另一個問題。如果我不需要Servlet並且只需要一個RESTlet WebService,那麼對於像十幾個客戶端那樣併發​​數百個請求,哪個容器最有效?

回答

1

絕對可以做到:我個人傾向於使用NetBeans/Maven的所以只能提供指向最終的XML設置,但...

我的網頁。XML包含:

<servlet> 
    <servlet-name>ServerServlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
    <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>my.Application</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>ServerServlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

隨着Tomcat的context.xml中:

<Context path="/rootPath"></Context> 

您可以根據需要,當然添加數據源和參數這些。

我剩餘的路由由Restlet自身在my.Application類中設置,它通過覆蓋org.restlet.Application中的createInboundRoute()和映射(路由)類上的Annotations來擴展ServerResource。

相關問題