2012-12-18 142 views
0

我已經經歷了谷歌的教程(我覺得這非常好)在 https://developers.google.com/web-toolkit/doc/latest/tutorial/RPC調用GWT RPC服務

我服務了,我的本地服務器和我的JavaScript客戶端可以罰款稱之爲上運行。好吧,至今。現在,我想要做的是在遠程服務器上部署服務JoeSoapHost:8080
我現在該如何告訴我的客戶端在哪裏發送請求?我看不到在我的RPC調用中創建的任何服務器/ URL。它只是魔術般的作品,但現在我想在帽子下開始打破它。

[編輯] 這是我的客戶端用來知道服務器上的服務將被調用的接口。我知道我的Web.xml網頁描述符必須具有與此匹配的網址。這是因爲我的服務器調用正常。問題是,如果我現在決定在其他地方部署我的服務器,我該如何告訴我的客戶端要使用哪個服務器/域名?

@RemoteServiceRelativePath("stockPrices") 
public interface StockPriceService extends RemoteService 
{ 
    StockPrice[] getPrices(String[] symbols); 
} 

我想要實現的第一個目標是將一個簡單的GWT客戶端調用到RPC服務中。我有這個工作,但只有當服務器是本地主機。 下一步,我將我的應用程序部署到Google App Engine。我現在必須改變,因爲在我的JavaScript我RPC服務,當我部署我的應用程序 不會被調用什麼http://stockwatcherjf.appspot.com/StockWatcher.html

+0

是您的客戶端在Java或PHP(非Java)。如果它不是Java,你可能正在尋找JSON + GWT。您可以在Chrome開發工具(Chrome)或Firebug(Firefox)中監控ajax調用。 web.xml是URL從客戶端映射到servlet的位置。 – SSR

+0

項目是純Java。 – MayoMan

回答

0

@RemoteServiceRelativePath給出了servlet相對於GWT.getModuleBaseURL()(這或多或少是*.nocache.js腳本的URL)的路徑;它不會「只靠魔法工作」。

如果您將服務部署在不同於服務客戶端代碼的服務器上,那麼您可能會遇到Same Origin PolicyCORS可以在這裏幫助,但你會失去與IE的兼容性(包括IE9)。你最好堅持提供來自同一起源的所有東西。