BlazeDS Пункт назначения уничтожить ()? - PullRequest
0 голосов
/ 22 октября 2009

У меня есть пункт назначения BlazeDS, и область действия настроена на запрос. Есть ли способ заставить BlazeDS вызывать destroy () после завершения запроса? Есть ли другой способ узнать, когда запрос завершен?

Я знаю, что могу использовать finalize (), но он вызывается только тогда, когда происходит сборка мусора.

Спасибо, Matt

Ответы [ 2 ]

0 голосов
/ 22 октября 2009

После просмотра исходного кода BlazeDS я понял, как этого добиться с помощью специального адаптера. Вот источник.

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);
    }
}
0 голосов
/ 22 октября 2009

Почему вы не можете присоединить его к концу вашего обработчика запросов?

...