2012-11-19 83 views
0

在GWT應用程序中我有RPC接口。有些方法可以正常工作(即RemoeServiceServlet配置正常),但是當我嘗試調用另一個方法時,它總是以onFailure()方法失敗。 Ajax調用也不會發生(我可以看到它使用FireBug,也不會發生服務器端方法調用),但此服務的另一個方法也會執行Ajax調用。GWT RPC方法調用失敗,沒有錯誤消息

當我嘗試使用e.getMessage()記錄錯誤時,我得到「undefined」消息。此外,我嘗試使用try-catch來打包RPC調用代碼 - 沒有錯誤消息。

這個問題可以與GWT-RPC序列化相關嗎?

編輯: Opera蜻蜓顯示錯誤上內部產生的JavaScript以下的方法(編譯PRETTY模式):

function $check(this$static, typeSignature){ if (isNull($get_3(this$static.methodMapNative, typeSignature))) { Unhandled Object: undefined throw new SerializationException_1(typeSignature); } }

與錯誤消息

未處理對象:未定義

+0

有沒有警告? – RAS

+0

你正在使用哪種gwt版本? –

+0

@RAS編譯時,我得到一個類型爲「Serializable」的字段。但是我在另一個項目中使用了'Serializable'字段,所以問題與它無關。 – MyTitle

回答

1

我想你有一個S請注意,Java序列化與GWT序列化不同。

使用RPC時,通常沒有關於序列化錯誤的有意義的錯誤消息。

  • 必須有0元構造
  • 最終場本質上是短暫的(即做打算序列化類不使用final字段)
  • 集合(如List和Set)必須用@來註釋gwt.typeArgs。 @ gwt.typeArgs是一個javadoc註釋,因此它必須被包裹在一個javadoc註釋 例:/ ** @ gwt.typeArgs */

有關詳細信息,請參閱: GWT Serialization

另一件事嘗試: 從eclipse-plugin運行GWT時,會創建eclipse項目中的一個文件夾(我相信它叫做gwt-unitCache)。有時我自己的GWT項目會生病並輸出奇怪的異常,我可以通過刪除該文件夾並再次運行項目來解決此問題。

相關問題