mule如何在工程中获取用户发送信息并调试

前面讲到了如何让通过代码启动mule工程,现在就说一下如何获取用户信息并调试,废话不多说先看效果:

 
mule如何在工程中获取用户发送信息并调试_第1张图片
 怎么样效果还行吧,下面就看一下如何实现的(用户需要了解Callable这个对象):


mule如何在工程中获取用户发送信息并调试_第2张图片
 在流程图中加入一个java组建 并在class name 引入MuleCallableUtil.java 用户信息就是在这个类里面获取的,相信看到这里你已经迫不及待的想看下一这个类里的内容了,下面就看一下吧:

import java.util.HashMap;
import java.util.Map;
import org.mule.api.MuleEventContext;
import org.mule.api.MuleMessage;
import org.mule.api.lifecycle.Callable;
public class MuleCallableUtil implements Callable{
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
 String  userAddress ="";//地址信息
 String  encoding ="";//信息编码
 String httpMethod ="";//发送方式
 Map<String, Object> dataMap = new HashMap<String, Object>();
 //获取消息    
    MuleMessage message  = eventContext.getMessage();     
    encoding = eventContext.getEncoding();
    userAddress = message.getInboundProperty("MULE_REMOTE_CLIENT_ADDRESS");
    httpMethod = message.getInboundProperty("http.method") ;
    HashMap<Object, Object> params = message.getInboundProperty("http.query.params");
    System.out.println("==========客户发送报文编码=============="+encoding);
    System.out.println("========= 客户发送报文============"+message.getPayloadAsString());
    System.out.println("========= 发送方式========"+httpMethod);
    System.out.println("========= 客户主机IP===="+userAddress);
    System.out.println("========= 客户发送的参数===="+message.getPayloadAsString());
    dataMap.put("message", message.getPayloadAsString());
    dataMap.put("params", params);

    return dataMap; 
}
}
从来类中可以看出 所有的信息eventContext 对象中的message中获取那么我们现在debug一下【调试功能】,取出这个对象看看里面有什么;用debug方式运行RunMuleContext 获取message对象:


mule如何在工程中获取用户发送信息并调试_第3张图片
 
至此相信你完全明白 如果调试 以及如何获取用户信息了吧.
 

 

你可能感兴趣的:(mule)