2013-05-02 52 views
2

我已經通過Eclipse插件創建了一個新的GWT項目 - 並試圖調用這個服務器端函數。我刪除了使用生成的代碼創建的初始「問候」函數 - 並將其替換爲另一個函數「QueryResponse search(QueryRequest query)」。但是,當客戶端調用函數時出現此錯誤。雖然產生的樣本「打招呼」的功能正在從某處GWT SDK中調用幫助如何解決GWT中的IncompatibleRemoteServiceException?

Starting Jetty on port 8888 
[WARN] greetServlet: An IncompatibleRemoteServiceException was thrown while processing this call. 
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: This application is out of date, please click the refresh button on your browser. (Could not locate requested method 'greetServer(com.myproject.shared.QueryRequest)' in interface 'com.myproject.client.GreetingService') 
    at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:310) 
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:206) 
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) 
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 

編輯:!這裏的和有趣的觀察我今天做的時候調用將不會觸發該錯誤不顯示。這個調用是在提交表單時進行的,今天我嘗試刪除表單提交部分,並在onmodule加載函數被調用時進行調用 - 並且它工作正常。服務器。但是,當我將它放回到表單提交事件中時,就會顯示此錯誤。不僅如此 - 每當提交表單時都會顯示此錯誤 - 是否觸發服務器調用。如果您提交表單一次,則會顯示錯誤。第一個錯誤後,即使您嘗試刷新頁面,也會顯示該錯誤。

+0

您是否在'Async'界面中重命名了該方法?請記住,所有的RPC方法都是在客戶端和服務器端定義的。 – jensgram 2013-05-02 09:07:36

+0

是的,我做了:如果你沒有,Eclipse拋出錯誤。這裏是:void search(QueryRequest query,AsyncCallback callback); – EternallyCurious 2013-05-02 09:10:50

+0

您是否(重新)在做出更改後啓動DevMode *? *在做出更改後是否重新加載了瀏覽器?你在DevMode中運行嗎? (在你的URL中有'?gwt.codesvr = 127.0.0.1:9997') – 2013-05-02 09:21:53

回答

5

我有同樣的問題,我最終通過刪除WEB-INF \ classes的內容來修復它,因爲它正在緩存一些舊內容。

顯然也嘗試清除下來C:\用戶\應用程序數據\本地的\ Temp作爲是一種常見的GWT問題..

0

得到了同樣的問題,比你,我只是現在解決它: 如果你的電話沒有發送,你的錯誤就不會顯示,這是因爲對服務器的呼叫不起作用。 我發現客戶端的JS不能正確刷新。嘗試重新啓動服務器,然後通過刷新本地緩存版本來刷新瀏覽器。如果我的解釋太複雜:清除緩存。在Chrome上,你可以使用crtl-f5而不是f5和firefox ctrl-R。