在许多情况下,可能需要把类转换为json,或者将json转换为xml,xlst等各种格式.这里简单讲解json和xml,xlst等之间的转换过程.
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:mxml="http://www.mulesoft.org/schema/mule/xml" xmlns:spring="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd"> <json:is-json-filter name="jsonFilter" validateParsing="true"/> <json:mapper name="myMapper"> <json:mixin mixinClass="com.easyway.esb.mule.json.transformers.FruitCollectionMixin" targetClass="com.easyway.esb.mule.json.transformers.FruitCollection"/> <json:mixin mixinClass="com.easyway.esb.mule.json.transformers.AppleMixin" targetClass="com.easyway.esb.mule.json.model.Apple"/> </json:mapper> <json:json-to-object-transformer name="jsonToFruitCollection" returnClass="com.easyway.esb.mule.json.transformers.FruitCollection" mapper-ref="myMapper"> <!-- test augmenting the mixin map with local mixins --> <json:deserialization-mixin mixinClass="com.easyway.esb.mule.json.transformers.OrangeMixin" targetClass="com.easyway.esb.mule.json.model.Orange"/> </json:json-to-object-transformer> <json:object-to-json-transformer name="fruitCollectionToJson" sourceClass="com.easyway.esb.mule.json.transformers.FruitCollection"> <json:serialization-mixin mixinClass="com.easyway.esb.mule.json.transformers.FruitCollectionMixin" targetClass="com.easyway.esb.mule.json.transformers.FruitCollection"/> <json:serialization-mixin mixinClass="com.easyway.esb.mule.json.transformers.AppleMixin" targetClass="com.easyway.esb.mule.json.model.Apple"/> <json:serialization-mixin mixinClass="com.easyway.esb.mule.json.transformers.OrangeMixin" targetClass="com.easyway.esb.mule.json.model.Orange"/> </json:object-to-json-transformer> <json:json-to-xml-transformer name="jToX"/> <json:xml-to-json-transformer name="xToJ"/> <json:json-xslt-transformer name="jToJ"> <mxml:xslt-text> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> </mxml:xslt-text> </json:json-xslt-transformer> <json:json-schema-validation-filter name="jvf" schemaLocations="customer.xsd"/> </mule>
测试代码:
XmlToJson transformer = new XmlToJson(); String jsonResponse = (String) transformer.transform(XML); System.out.println("jsonResponse ="+jsonResponse); StringReader reader = new StringReader(XML); transformer = new XmlToJson(); jsonResponse = (String) transformer.transform(reader); System.out.println("jsonResponse ="+jsonResponse); byte[] bytes = XML.getBytes(); transformer = new XmlToJson(); jsonResponse = (String) transformer.transform(bytes); System.out.println("jsonResponse ="+jsonResponse); Document document = XMLUtils.toW3cDocument(XML); document.setDocumentURI("xxx"); transformer = new XmlToJson(); jsonResponse = (String) transformer.transform(document); System.out.println("jsonResponse ="+jsonResponse);
mule-jdbc-json-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:quartz="http://www.mulesoft.org/schema/mule/quartz" xmlns:jdbc="http://www.mulesoft.org/schema/mule/jdbc" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:https="http://www.mulesoft.org/schema/mule/https" xmlns:test="http://www.mulesoft.org/schema/mule/test" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/schema/mule/test/current/mule-test.xsd http://www.mulesoft.org/schema/mule/jdbc http://www.mulesoft.org/schema/mule/jdbc/current/mule-jdbc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/https http://www.mulesoft.org/schema/mule/https/current/mule-https.xsd http://www.mulesoft.org/schema/mule/quartz http://www.mulesoft.org/schema/mule/quartz/current/mule-quartz.xsd"> <jdbc:mysql-data-source name="MySQL_Data_Source1" url="jdbc:mysql://localhost:3306/dbtest2" user="root" password="root" transactionIsolation="UNSPECIFIED" /> <jdbc:connector name="Database" dataSource-ref="MySQL_Data_Source1" validateConnections="true" queryTimeout="-1" pollingFrequency="0" /> <flow name="httpPostTestFlow1" > <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="httpPost" ></http:inbound-endpoint> <json:json-to-object-transformer returnClass="java.util.Map"></json:json-to-object-transformer> <jdbc:outbound-endpoint exchange-pattern="one-way" queryTimeout="-1" queryKey="INSERT_TOKEN" connector-ref="Database"> <jdbc:query key="INSERT_TOKEN" value="insert into user(FirstName) values(#[message.payload.name]);"/> </jdbc:outbound-endpoint> </flow> </mule>
相关推荐
转换器用于在不同数据格式之间转换消息内容,文档列出了自定义转换器、Object-to-XML/JSON转换器、脚本转换器、XSLT转换器以及Xml/Json-to-Object转换器等。这些转换器支持将消息从一种格式转换成另一种格式。 7. ...
最后,`MULE_LICENSE.txt`是Mule ESB的许可协议文件,它详细阐述了软件的使用条款和条件,确保用户合法合规地使用Mule ESB。 综上所述,Mule ESB的源码包含了丰富的组件和配置,从日志记录到企业级服务,再到安全性...
在本篇“Mule ESB 学习笔记(13)CSV数据文件到数据库”中,我们将探讨如何使用Mule ESB(Enterprise Service Bus,企业服务总线)处理CSV(Comma Separated Values,逗号分隔值)数据,并将其有效地导入到数据库中...
MULE ESB(Mule Enterprise Service Bus)是Anypoint Platform的核心组件,它是一个强大的、全面集成的企业服务总线(ESB),专为构建、部署和管理API和集成解决方案而设计。MULE ESB-4.1是MuleSoft公司推出的企业版...
### ESB原理及Mule ESB实践 #### ESB(Enterprise Service Bus)原理概述 **ESB**(企业服务总线)是SOA(面向服务架构)架构中的关键组件之一,用于实现服务间的智能集成与管理。其核心作用在于简化不同系统间的...
Mule ESB 支持使用注解来创建服务对象和转换器,这是一种更加灵活和简洁的编程方式。注解可以用于声明服务接口、指定消息处理器、绑定输入和输出参数等。常见的注解包括 @Function、@Groovy、@InboundAttachments、@...
描述:本手册旨在为用户提供对Mule ESB 3的基础使用指导,强调了Mule ESB作为一个社区成熟且文档丰富的开源企业服务总线(ESB)的使用方法。 知识点说明: 1. Mule ESB概述: Mule ESB是一个开源的中间件平台,...
3. **数据转换**:Mule ESB支持多种数据格式的转换,包括XML、JSON、CSV等,确保数据在不同系统间顺畅传递。 **三、Mule ESB 3.0新特性** 1. **改进的性能**:Mule ESB 3.0对引擎进行了优化,提升了处理速度和吞吐...
Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个... Mule ESB 包含如下强大的能力: 服务创建和托管— 暴露和托管可重用服务, 使用Mule ESB作为一个轻量级服务容器.
五、学习和使用Mule ESB "MuleESB3"这个文件名可能指的是Mule ESB的第三个主要版本。在该版本中,用户可以期待更完善的特性和改进。对于初学者,建议首先通过官方文档了解Mule ESB的基本概念和工作原理,然后使用Any...
Mule ESB 开源框架简介 Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、...
- **知名用户**:沃尔玛、惠普、索尼、德意志银行、花旗银行等知名企业都在使用Mule ESB。 通过以上内容,可以看出Mule ESB 3.0不仅在技术层面具有很高的成熟度,而且在实际应用中也得到了广泛的认可。无论是对于...
学习Mule ESB时,还需要了解Anypoint Platform,这是一个全面的集成解决方案,包括Anypoint Studio、Anypoint Exchange(共享连接器和资源的库)、Anypoint Runtime Manager(用于监控和管理Mule应用的运行时环境)...
通过这个源码库,读者可以实际操作这些示例,加深对Mule ESB工作原理的理解,学习如何解决实际问题,从而提升在企业集成项目中的技能。记住,理论知识和实践经验相结合是掌握复杂技术的关键。因此,仔细研究这些源码...
MULE ESB-4.1社区版是Mulesoft为开发者提供的免费版本,它包含了基本的ESB功能,适合学习、开发和小规模项目部署。 在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint ...
8. **基于EIP(Enterprise Integration Patterns)的事件路由**:Mule ESB利用这些标准模式实现复杂的路由和转换策略,提高数据处理的智能化和自动化程度。 在Mule ESB中,连接器(Connectors)扮演着关键角色,...
图整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、TransactionManagement(事务管理)、Transformation(转换)、MessageBroker(消息代理)、...
《Mule ESB Cookbook》是一本专注于Mule ESB实用技术的书籍,旨在帮助开发者深入理解和应用Mule ESB这一企业服务总线(Enterprise Service Bus)平台。这本书提供了丰富的示例代码,帮助读者掌握Mule ESB的核心功能...