mule使用案例企业服务总线ESB案例activeMQ转换成xml

技术文档介绍

MULE官网

https://www.mulesoft.com/


MULE开发文档
https://docs.mulesoft.com/


MULE入门和关键概念
https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-concepts


MEL表达式基础
https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-mel


下面解释一个简单例子

需求:通过activeMQ接收数据,并且对数据进行变更,通过转换成map或者pojo对象,输出为xml格式文件



XML配置:

    <jms:activemq-connector name="Active_MQ" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ"/>
    <data-mapper:config name="Map_To_XML" transformationGraphPath="map_to_xml.grf" doc:name="Map_To_XML"/>
    <flow name="activemq-httpFlow">
        <jms:inbound-endpoint queue="chao" connector-ref="Active_MQ" doc:name="JMS"/>
        <custom-transformer class="com.chao.transformers.ActiveMqDataTransformers" doc:name="Java"/>
        <data-mapper:transform config-ref="Map_To_XML" doc:name="Map To XML"/>
        <file:outbound-endpoint path="F:\chinadci\xml" outputPattern="#[message.id].xml" responseTimeout="10000" doc:name="File"/>
    </flow>


这个是通过java类进行简单转换例子

package com.chao.entity;


public class Person {


private String name;

private String age;

private String phone;

private String sparkContent;



public Person() {
}



public Person(String name, String age, String phone, String sparkContent) {
super();
this.name = name;
this.age = age;
this.phone = phone;
this.sparkContent = sparkContent;
}








public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public String getAge() {
return age;
}


public void setAge(String age) {
this.age = age;
}


public String getPhone() {
return phone;
}


public void setPhone(String phone) {
this.phone = phone;
}




public String getSparkContent() {
return sparkContent;
}


public void setSparkContent(String sparkContent) {
this.sparkContent = sparkContent;
}




@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", phone=" + phone
+ ", sparkContent=" + sparkContent + "]";
}

}



以下是转换类的转换方式,可以通过map或者对象

package com.chao.transformers;


import java.util.HashMap;
import java.util.Map;


import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;


import com.chao.entity.Person;


public class ActiveMqDataTransformers extends AbstractMessageTransformer{


@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {

Person person = new Person();

Map<String,Object> map = new HashMap<String,Object>();

Object payload = message.getPayload();

map.put("name","luffy");
map.put("age", "25");
map.put("phone", "13570425699");
map.put("message", String.valueOf(payload));

person.setName("luffy");
person.setAge("18");
person.setPhone("13570425699");
person.setSparkContent(String.valueOf(payload));

System.out.println(person);


return map;
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shaw_Bigdata

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值