2014-04-12 38 views
3

假設我下面GWT服務:是否可以將GWT-RPC調用發送到其他服務器?

@RemoteServiceRelativePath("greet") 
public interface GreetingService extends RemoteService { 
    String greetServer(String name) throws IllegalArgumentException; 
} 

我建立在myserver1.com &部署客戶端代碼,但我的servlet位於myserver2.com(如http://myserver2.com/gwt-module-base/greet)& server1的允許跨域資源共享的服務器2。
現在,這裏是一個問題:如何將gwt-rpc呼叫發送到myserver2.com而不是myserver1.com

回答

2

您需要的唯一東西就是在myserver2.com中啓用CORS。我前段時間爲gwtquery文檔寫了一個過濾器。它也適用於RPC和RF。

https://code.google.com/p/gwtquery/wiki/Ajax#CORS_(Cross_Origin_Resource_Sharing)

將帖子

您必須配置這樣您的服務傳輸:

GreetingServiceAsync greetingService = GWT.create(GreetingService.class); 
((ServiceDefTarget)greetingService).setServiceEntryPoint("myserver2.com/greet"); 
greetingService.greetServer(....) 
+2

我想你是誤會我的問題,我是說我怎麼能告訴GWT發送請求到server2而不是server1。無論如何,我找到了解決方案!可以在創建代理對象時完成: 'GreetingServiceAsync proxy = GWT.create(GreetingService.class); ((ServiceDefTarget)代理).setServiceEntryPoint(「http://myserver2.com/gwt-module-base/greet」);' –

+0

在setServiceEntryPoint參數中,使用GWT.getHostPageBaseURL()作爲您的服務器URL前綴,例如GWT .getHostPageBaseURL()+「gwt-module-base/greet」。 – Patrick

+0

對不起,我編輯了我的回覆。 –

相關問題