Pregunta

Tengo un destino BlazeDS y el alcance está configurado para solicitar. ¿Hay una manera de hacer que BlazeDS llame a destroy () cuando la solicitud esté completa? ¿Hay otra manera de saber cuándo se completa la solicitud?

Sé que puedo usar finalize (), pero eso solo se llama cuando se produce la recolección de basura.

Gracias, Matt

¿Fue útil?

Solución 2

Después de navegar a través del código fuente de BlazeDS, descubrí cómo hacerlo utilizando un adaptador personalizado. Aquí está la fuente.

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

Otros consejos

¿Por qué no puede adjuntarlo al final del controlador de su solicitud?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top