代码之家  ›  专栏  ›  技术社区  ›  Matt MacLean

Blazeds destination destroy()?

  •  0
  • Matt MacLean  · 技术社区  · 15 年前

    我有一个Blazeds目的地,范围设置为请求。有没有一种方法可以让Blazeds在请求完成时调用destroy()?有没有其他方法知道请求何时完成?

    我知道我可以使用finalize(),但这只在垃圾收集发生时调用。

    谢谢, 马特

    2 回复  |  直到 15 年前
        1
  •  0
  •   CookieOfFortune    15 年前

    为什么不能将它附加到请求处理程序的末尾?

        2
  •  0
  •   Matt MacLean    15 年前

    浏览完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);
        }
    }
    
    推荐文章