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

Était-ce utile?

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
scroll top