技术文档介绍
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;
}
}