2009-08-25 52 views
8

有沒有簡單的方法直接從Java代碼調用GWT RPC服務端點?我的意思是真正的Java代碼,而不是編譯成javascript的Java代碼。直接從Java調用GWT RPC服務

我問,因爲我們想對GWT RPC接口運行性能基準測試/壓力測試。我想用Java編寫測試工具,並在JVM中運行它(與在瀏覽器中運行的JavaScript相反)。

我覺得必須有辦法做到這一點,因爲我認爲GWT託管模式需要這樣的功能。但是,我無法在GWT運行時中找到任何代碼來演示如何幹淨地執行此操作。我查看了com.google.gwt.user.client.rpc包,但那裏的東西似乎使用了JSNI,這顯然不會被純Java使用。

回答

10

GWT SyncProxy允許您從純Java(而非JSNI)代碼訪問GWT RPC服務(例如方法)。因此你可以用它來測試你的RPC接口。

有關詳細信息,請參閱http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/

+0

該機制是否適用於生產系統?例如,我可以使用它來爲客戶提供客戶端Java API嗎? – HDave

+0

是的,當然。但是,對於第三方訪問,您必須/應該在服務器端實施訪問控制 – Trung

+1

由於上述URL似乎已經失效,請參閱項目的Google代碼網站:https://code.google.com/p/gwt -syncproxy/ – JCricket

0

您可以使用傳統負載測試工具(如磨牀)來重新發送發送到您的服務的請求。這並不完全是你所要求的,但它可能是更好的方式來執行應用程序的負載測試。磨牀可以模擬許多同時使用的用戶等等。

1

您是否試圖對服務的業務邏輯進行基準測試,或者GWT-RPC本身的性能如何?如果你主要是擔心你的後端代碼如何執行,你可以只實例化實現您的服務直接類:

MyServiceImpl impl = new MyServiceImpl(); 
impl.doSomething(); 

如果你想測試堆棧的更大片,包括RPC調用,採取一看here。有一個名爲「在Web模式下運行測試」的部分,其中包含以下行:'默認情況下,以託管模式運行的測試作爲JVM中的普通Java字節碼運行。所以如果你使用了描述的設置,我想你會在默認情況下讓你的測試以java運行。此外,該頁面還提供了關於GWT內置分析工具的信息。

+0

我想測試GWT-RPC本身以及我們在服務器中構建的自定義調度機制。我寧願不必使用GWT測試基礎設施強加的所有腳手架,但我會看看您參考的內置GWT測試工具。謝謝! – Eric