我試圖爲GWT
的主頁創建後端。我在Eclipse
中創建了一個Google Web Application
,但沒有示例代碼,現在我想添加該服務,但開發人員Google指南不能幫助我。我不確定,在哪裏添加界面,以及它的工作原理。創建GWT RPC服務
如果我正確理解Google文檔,我必須添加module
和entry point class
,這是否正確?如果你能給我一些提示並幫助如何創建一個rpc服務,那將是非常好的。
我試圖爲GWT
的主頁創建後端。我在Eclipse
中創建了一個Google Web Application
,但沒有示例代碼,現在我想添加該服務,但開發人員Google指南不能幫助我。我不確定,在哪裏添加界面,以及它的工作原理。創建GWT RPC服務
如果我正確理解Google文檔,我必須添加module
和entry point class
,這是否正確?如果你能給我一些提示並幫助如何創建一個rpc服務,那將是非常好的。
如果創建在Eclipse的一個新的GWT項目「新建項目」嚮導「生成項目的示例代碼」檢驗,它將包括一個樣品的方法,然後你就可以根據適應或複製一個全功能的RPC服務滿足您的需求。
內存不足,不要在我面前發生日食。 首先用生成的測試代碼創建一個測試項目,之後可以將其刪除。 是的,你將不得不添加一個模塊。 在客戶端創建異步調用的兩個接口,並在服務器端繼承它。 希望我明白你的問題的權利。
我不確定最能幫助您的是什麼。 Google開發人員指南對我來說足夠了(至少當我開始在1.6版本上使用它時)爲我的GWT應用程序創建RPC服務。
通用APP
模塊:是.gwt.xml
文件。是的,你需要它。 GWT編譯器會自動找到它並嘗試編譯所有的GWT代碼(<source>
元素將告訴哪個子包包含將被轉換爲JS的Java代碼)。它會告訴哪個類實現EntryPoint接口。 onModuleLoad將是JavaScript在客戶端頁面中運行時執行的代碼。
RPC
那麼,你應該首先嚐試UI的東西,只有到那時,當你有足夠的信心,儘量服務器的事情。無論如何,該方案是:
interface MyService extends RemoteService {
List<String> doSomething(String sample, int other);
}
@RemoteServiceRelativePath("../path/to/servlet") // see later
intercace MyServiceAsync {
void doSomething(String sample, int other, AsyncCallback<List<String>> callback);
}
這些是接口。後來是異步的。這就是你將從客戶端使用的。總是調用並傳遞一個AsyncCallback的實現,該實現將會收到(稍後,您不知道何時)結果。
第一個接口是同步接口。這是你需要在服務器上實現的。您必須從RemoteServiceServlet類繼承(這是servlet的一個實現,它已經完成了所有值處理)並實現了您的接口。其餘(幾乎)GWT代碼。
public class ServiceImpl extends RemoteServiceServlet implements MyService
{
// implement the method normally
}
從客戶端,您將需要創建服務代理:
private static MyServiceAsync MY_SERVICE = GWT.create(MyService.class);
是。我知道GWT知道MyserviceAsync和MyService如何協作,這很奇怪。別擔心。它的工作原理:)
只要使用這樣的服務:
MY_SERVICE.doSomething("value", 111, new AsyncCallback<List<String>>() {
// note that this code executes some time in the future when response from server is back
public void onSuccess(List<String> result) {
Window.alert("Server answered with " + result.size() + " elements!");
}
public void onFailure(Throwable t) {
Window.alert("Server failed: " + t.getMessage());
}
}
路徑服務器
你必須配置你的應用程序,使該servlet實現監聽到URL指示@ RemoteServiceRelativePath。這就是客戶端知道在哪裏發出請求的方式,服務器知道哪個servlet出現該請求。我建議使用:
../my-service.gwt
爲相對路徑(GWT模塊被刊登在<ROOT>/module_name
和
配置Web應用程序來使用/my-service.gwt
servlet的,但它完全取決於您的喜好:)
無論如何,我認爲谷歌教程是最好的。所以請複製&粘貼。嘗試&修改,直到你瞭解整個事情。
基於'StockWatcher'的教程是一個很好的開始! https://developers.google.com/web-toolkit/doc/latest/tutorial/gettingstarted –