我目前正在嘗試使用SyncProxy
庫來測試我的應用程序的服務,以便使用JMeter進行負載測試。該應用程序工作正常,我在本地主機上運行它。使用SyncProxy測試服務:「接收RPC響應時出現IOException」
問題出現在我嘗試在我的JUnit測試中使用SyncProxy時,它們失敗。
這裏是在JUnit測試中使用的一段代碼:
ThemeServiceAsync themeServiceAsync = (ThemeServiceAsync) SyncProxy
.newProxyInstance(ThemeServiceAsync.class, MODULE_BASE_URL, GET_THEMES_SERVICE_NAME);
themeServiceAsync.getListTheme(codeEfs, codeSI, noStr, statut, new AsyncCallback<List<Theme>>(){
@Override
public void onFailure(Throwable arg0) {
// TODO Auto-generated method stub
System.out.println(arg0);
}
@Override
public void onSuccess(List<Theme> result) {
// TODO Auto-generated method stub
System.out.println(result);
}
});
我收到以下錯誤:IOException while receiving RPC response
我用調試模式尋找到了問題的來源。在服務器端,一切都很好,直到結果被髮送回客戶端。結果在數據庫中找到,但我有一個神祕的500錯誤。
挖後,我發現,這個異常被拋出(在AbstractRemoteServiceServlet
):
com.google.gwt.user.client.rpc.SerializationException: Type 'net.gicm.ector.shared.beans.Theme' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.
For security purposes, this type will not be serialized.: instance = [email protected]
我發現了很多的線程在談論你的類需要實現「isSerializable」的事實,但我不明白,是我真的在本地主機上運行我的應用程序,並且一切正常,包括不同的服務。
但是,當涉及到運行我的JUnit(s),我有這些錯誤。
檢查基本知識:你的類是否實現了Serializable的'Theme'?它有沒有參數的構造函數?你還使用什麼gwt版本? – Andrei
我的課'主題'是實現Serializable。它有一個無參數構造函數,gwt版本是2.6 – krakig