Frage

Ich habe ein BlazeDS Ziel und der Umfang wird beantragen. Gibt es eine Möglichkeit BlazeDS zu erhalten, rufen Sie zu zerstören (), wenn die Anforderung abgeschlossen ist? Gibt es eine andere Art und Weise zu wissen, wann die Anforderung abgeschlossen ist?

Ich weiß, ich finalize () verwenden, aber das wird nur aufgerufen, wenn die Garbage Collection stattfindet.

Danke, Matt

War es hilfreich?

Lösung 2

Nach dem Surfen durch die BlazeDS Quellcodes habe ich herausgefunden, wie dies zu erreichen, indem Sie einen benutzerdefinierten Adapter verwenden. Hier ist die Quelle.

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);
    }
}

Andere Tipps

Warum können Sie nicht hängen Sie es an das Ende Ihrer Request-Handler?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top