我目前正在尝试使用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