• Mule http端点+transformer的一个小例子


    做这个例子只是想说明一下mule的组件之间传消息时候,最原始进来的消息是被存放在了message的payload里面.

    1.打开mule studio 3.3

    2.新建一个项目test,主流程明为main.flow

    3.切换到flow的创建流程

    4.拖入一个http endpoint,默认的成为了inbound endpoint

    5.拖入第二个http endpoint,连接到先前那个http endpoint上面,这次默认成了http outbound endpoint

    6.在两个http endpoint 之间拖入一个java transformer

    这时,流程如下图(左边是http inbound endpoint,中间是一个java类型的transformer,右边是一个http outbound endpoint):

    image

    7.在/src/main/java下新建一个package,新建一个java类,集成自AbstractMessageTransformer;

    实现代码如下:

       1: package com.leipei.test;
       2:  
       3: import org.apache.log4j.Logger;
       4: import org.mule.api.MuleMessage;
       5: import org.mule.api.transformer.TransformerException;
       6: import org.mule.transformer.AbstractMessageTransformer;
       7:  
       8: public class MyTransformer extends AbstractMessageTransformer {
       9: private static Logger logger=Logger.getLogger(MyTransformer.class);
      10:     @Override
      11:     public Object transformMessage(MuleMessage message, String outputEncoding)
      12:             throws TransformerException {
      13:         String content=null;
      14:         try {
      15:             content = message.getPayloadAsString();
      16:             logger.info("orignal content:"+content);
      17:         } catch (Exception e) {
      18:             logger.error(e.getMessage());
      19:         }
      20:         return content;
      21:     }
      22:  
      23: }

    这段代码表示我们获取到了从inbound http endpoint进来的消息,不做任何处理,直接交给 http outbound  endpoint

    8.修改http outbound endpoint,使其可以向baidu发送http get请求.如下:

    image

    9.打开http inbound endpoint,确认本地可以接受mule消息的http inbound endpoint的监听端口.如下:

    image

    这个是默认配置,先不用管.

    10.启动这个mule project,可以看到在控制台有输出如下内容:

    **********************************************************************
    INFO 2012-08-17 23:37:37,666 [[test].config.change.1.thread.1] org.mule.module.launcher.DeploymentService:
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    + Started app 'test' +
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    11.在本地浏览器中输入http://localhost:8081 ,结果如下:

    image

    这个说明mule已经将本地请求转发了出去.并且我们的请求内容确实是被放在了 message的payload里面.

  • 相关阅读:
    第二天课程档案
    第一天课程档案
    SAM初步
    计算几何初步
    数论二次总结
    生成函数入门题汇总
    1500: [NOI2005]维修数列
    20170214
    【bzoj2286】[Sdoi2011]消耗战
    bzoj2223: [Coci 2009]PATULJCI
  • 原文地址:https://www.cnblogs.com/leipei2352/p/2644909.html
Copyright © 2020-2023  润新知