BlazeDS Destination destroy ()?
-
05-07-2019 - |
Question
J'ai une destination BlazeDS et la portée est configurée pour demander. Existe-t-il un moyen de faire appeler BlazeDS à destroy () lorsque la requête est terminée? Y a-t-il un autre moyen de savoir quand la demande est complète?
Je sais que je peux utiliser finalize (), mais cela n'est appelé que lorsque la récupération de place a lieu.
Merci, Matt
La solution 2
Après avoir parcouru le code source de BlazeDS, j’ai compris comment faire cela en utilisant un adaptateur personnalisé. Voici la source.
package mypackage.adapters;
import java.lang.reflect.Method;
import java.util.Vector;
import flex.messaging.services.remoting.RemotingDestination;
import flex.messaging.services.remoting.adapters.JavaAdapter;
import flex.messaging.util.MethodMatcher;
public class MyAdapter extends JavaAdapter {
protected void saveInstance(Object instance) {
try {
MethodMatcher methodMatcher = ((RemotingDestination)getDestination()).getMethodMatcher();
Method method = methodMatcher.getMethod(instance.getClass(), "destroy", new Vector());
if ( method != null ) {
method.invoke(instance);
}
}
catch ( Exception ex ) {
ex.printStackTrace(System.out);
}
super.saveInstance(instance);
}
}
Autres conseils
Pourquoi ne pouvez-vous pas l'attacher à la fin de votre gestionnaire de demandes?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow