mbeantransportmanager.java

来自「Xfire文件 用于开发web service 的一个开源工具 很好用的」· Java 代码 · 共 44 行

JAVA
44
字号
package org.codehaus.xfire.management.mbeans;

import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.Enhancer;

import org.codehaus.xfire.XFireRuntimeException;
import org.codehaus.xfire.transport.DefaultTransportManager;
import org.codehaus.xfire.transport.Transport;

public class MBeanTransportManager extends DefaultTransportManager
{
    private ServiceStat serviceStat;

    public MBeanTransportManager(ServiceStat serviceStat)
    {
        super();
        
        this.serviceStat = serviceStat;
    }

    @Override
    public void register(Transport transport)
    {
        TransportInterceptor interceptor = new TransportInterceptor(transport, serviceStat);
        Enhancer e = new Enhancer();
        e.setSuperclass(transport.getClass());
        e.setCallbackType(TransportInterceptor.class);
        e.setUseFactory(false);

        Class mock = e.createClass();
        Enhancer.registerCallbacks(mock, new Callback[] { interceptor });
        
        try
        {
            Object t = Sun14ReflectionProvider.newInstance(mock);
            super.register((Transport)t);
        }
        catch (Exception e1)
        {
            throw new XFireRuntimeException("Couldn't instantiate MBean transport.", e1);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?