Ich versuche derzeit, die SyncProxy
-Bibliothek zum Testen von Diensten meiner App zu verwenden, um Belastungstests mit JMeter durchzuführen. Die App funktioniert einwandfrei, ich verwende sie auf localhost.Verwenden von SyncProxy zum Testen von Diensten: "IOException beim Empfang von RPC-Antworten"
Das Problem kommt, wenn ich versuche, SyncProxy in meinen JUnit-Tests zu verwenden, scheitern sie.
ist hier ein Stück Code in einem JUnit-Test verwendet:
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);
}
});
ich die folgende Störung erhalte: IOException while receiving RPC response
ich den Debug-Modus verwendet, um herauszufinden, wo das Problem war kommen. Auf der Serverseite läuft alles gut, bis das Ergebnis an den Client zurückgesendet wird. Das Ergebnis ist in der Datenbank gefunden, aber ich habe einen mysteriösen 500 Fehler.
Nach dem Graben, fand ich, dass diese Ausnahme (im AbstractRemoteServiceServlet
) geworfen wird:
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]
fand ich eine Menge Threads über die Tatsache sprechen, dass Ihre Klasse zu implementieren „IsSerializable“ braucht, aber was ich verstehe nicht, ist, dass ich tatsächlich meine App auf localhost laufen lasse, und alles funktioniert gut, einschließlich der verschiedenen Dienste.
Aber wenn es darum geht, meine JUnit (s) zu laufen, habe ich diese Fehler.
Überprüfen Sie die Grundlagen: Ist Ihre Klasse 'Theme', die Serializable implementiert? Hat es einen Nicht-Arg-Konstruktor? Auch welche gwt-Version verwendest du? – Andrei
Meine Klasse 'Theme' implementiert Serializable. Es hat einen No-Arg-Konstruktor, und die gwt-Version ist die 2.6 – krakig