Пункт назначения BlazeDS уничтожить()?
-
05-07-2019 - |
Вопрос
У меня есть пункт назначения BlazeDS, и область действия установлена на запрос.Есть ли способ заставить BlazeDS вызывать destroy() после завершения запроса?Есть ли другой способ узнать, когда запрос будет завершен?
Я знаю, что могу использовать finalize() , но это вызывается только тогда, когда происходит сборка мусора.
Спасибо, Мэтт
Решение 2
Просмотрев исходный код 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);
}
}
Другие советы
Почему вы не можете прикрепить его к концу вашего обработчика запросов?
Не связан с StackOverflow