⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientreceivehandler.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.client;

import java.util.List;

import org.codehaus.xfire.MessageContext;
import org.codehaus.xfire.handler.AbstractHandler;
import org.codehaus.xfire.handler.Phase;
import org.codehaus.xfire.service.Binding;
import org.codehaus.xfire.service.MessageInfo;
import org.codehaus.xfire.service.binding.ServiceInvocationHandler;

class ClientReceiveHandler extends AbstractHandler
{
    private Invocation call;
    
    public ClientReceiveHandler(Invocation call)
    {
        super();
        
        setPhase(Phase.SERVICE);
        this.call = call;
    }

    public void invoke(MessageContext context)
        throws Exception
    {
        if (context.getCurrentMessage().equals(context.getExchange().getInMessage()))
        {
            List body = (List) context.getCurrentMessage().getBody();
            Binding binding = context.getBinding();
            MessageInfo msgInfo = context.getExchange().getOperation().getOutputMessage();
            Object result = ServiceInvocationHandler.readHeaders(context,
                                                                 binding.getHeaders(msgInfo),
                                                                 (Object[]) context.getOutMessage().getBody());
            
            if (result != null)
            {
                body.add(result);
            }
            
            call.receive(body);
        }
        else if (context.getCurrentMessage().equals(context.getExchange().getFaultMessage()))
            call.receiveFault((Exception) context.getCurrentMessage().getBody());                
    }
}

⌨️ 快捷键说明

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