在项目常用jesery作为rest开发的框架,jesery简单快捷,易于扩展方便使用,在这里我们学习一下mule和jesery的整合使用.
1.简单的绑定一个资源请求路径:
<service name="helloWorldResource"> <inbound> <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/> </inbound> <jersey:resources> <component class="org.mule.module.jersey.HelloWorldResource"/> </jersey:resources> </service>
import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import com.easyway.esb.mule.jersey.exception.HelloWorldException; /** * mule和jersey的整合使用 * <p>功能描述,该部分必须以中文句号结尾。<p> * * 创建日期 2013-8-23<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ @Path("/helloworld") public class HelloWorldResource { @POST @Produces("text/plain") public String sayHelloWorld() { return "Hello World"; } @GET @Produces("application/json") @Path("/sayHelloWithJson/{name}") public HelloBean sayHelloWithJson(@PathParam("name") String name) { HelloBean hello = new HelloBean(); hello.setMessage("Hello " + name); return hello; } @DELETE @Produces("text/plain") public String deleteHelloWorld() { return "Hello World Delete"; } @GET @Produces("text/plain") @Path("/sayHelloWithUri/{name}") public String sayHelloWithUri(@PathParam("name") String name) { return "Hello " + name; } @GET @Produces("text/plain") @Path("/sayHelloWithHeader") public Response sayHelloWithHeader(@HeaderParam("X-Name") String name) { return Response.status(201).header("X-ResponseName", name).entity("Hello " + name).build(); } @GET @Produces("text/plain") @Path("/sayHelloWithQuery") public String sayHelloWithQuery(@QueryParam("name") String name) { return "Hello " + name; } @GET @Produces("text/plain") @Path("/throwException") public String throwException() throws HelloWorldException { throw new HelloWorldException("This is an exception"); } }
2.多个资源的请求的并当使用:
<flow name="helloWorldResource"> <inbound-endpoint address="http://localhost:63081/" /> <jersey:resources> <component class="org.mule.module.jersey.HelloWorldResource" /> <component class="org.mule.module.jersey.AnotherWorldResource" /> </jersey:resources> </flow>
3.针对复杂数据类型的的解析处理
<flow name="helloWorldResource"> <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/> <jersey:resources> <component class="com.easyway.esb.mule.jersey.HelloWorldResource"/> <jersey:context-resolver class="com.easyway.esb.mule.jersey.contextresolver.JaxbCustomContextResolver" /> </jersey:resources> </flow>
import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import com.easyway.esb.mule.jersey.HelloBean; import com.sun.jersey.api.json.JSONConfiguration; import com.sun.jersey.api.json.JSONJAXBContext; @Provider public class JaxbCustomContextResolver implements ContextResolver<JAXBContext> { protected JAXBContext context; @Override public JAXBContext getContext(Class<?> type) { if (type.equals(HelloBean.class)) { if (context == null) { try { context = new JSONJAXBContext(JSONConfiguration.natural().build(), type); } catch (JAXBException e) { // do nothing } } return context; } return null; } }
4.针对REST异常的处理绑定使用
<model name="BasicJerseyTest"> <service name="helloWorldResource"> <inbound> <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/> </inbound> <jersey:resources> <component class="com.easyway.esb.mule.jersey.HelloWorldResource"/> <jersey:exception-mapper class="com.easyway.esb.mule.jersey.exception.HelloWorldExceptionMapper" /> </jersey:resources> </service> </model>
相关推荐
最后,`MULE_LICENSE.txt`是Mule ESB的许可协议文件,它详细阐述了软件的使用条款和条件,确保用户合法合规地使用Mule ESB。 综上所述,Mule ESB的源码包含了丰富的组件和配置,从日志记录到企业级服务,再到安全性...
根据提供的文件内容,以下是关于Mule ESB手册-中文版的知识点: 1. Mule ESB简介 ...通过这些知识点的学习,可以加深对Mule ESB的使用方法的理解,并通过实例加深对ESB概念的理解,对新手来说非常有帮助。
- 许多知名公司如沃尔玛、惠普、索尼、德意志银行和花旗银行都在使用MuleESB。 4. **Mule ESB的安装与配置** - MuleESB有两个版本:社区版和企业版。社区版免费,适合初学者和小型项目;企业版提供了更多高级...
在本篇“Mule ESB 学习笔记(13)CSV数据文件到数据库”中,我们将探讨如何使用Mule ESB(Enterprise Service Bus,企业服务总线...通过实践和学习,我们可以更好地掌握Mule ESB在实际项目中的应用,提升我们的IT技能。
MULE ESB(Mule Enterprise Service Bus)是Anypoint Platform的核心组件,它是一个强大的、全面集成的企业服务总线(ESB),专为构建、部署和管理API和集成解决方案而设计。MULE ESB-4.1是MuleSoft公司推出的企业版...
Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个... Mule ESB 包含如下强大的能力: 服务创建和托管— 暴露和托管可重用服务, 使用Mule ESB作为一个轻量级服务容器.
Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、Web Services、JDBC、...
五、学习和使用Mule ESB "MuleESB3"这个文件名可能指的是Mule ESB的第三个主要版本。在该版本中,用户可以期待更完善的特性和改进。对于初学者,建议首先通过官方文档了解Mule ESB的基本概念和工作原理,然后使用Any...
- **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise Integration Patterns)原则构建,支持多种传输协议(如file, FTP, ...
3. **连接器使用**:学习如何配置和使用各种连接器,如文件、数据库和Web服务连接器。 4. **数据转换与映射**:通过实例讲解XML到JSON的转换,以及数据映射的原理和方法。 5. **错误处理与异常管理**:理解Mule ...
《Mule ESB 开发手册》是一份详尽的指南,专为希望深入了解并掌握 Mule ESB(Enterprise Service Bus)技术的...通过深入学习和实践,开发者可以充分利用 Mule ESB 的强大功能,实现高效、可靠的企业级集成解决方案。
《Mule ESB Cookbook随书源码》是一个与Mule ESB相关的实践指南,它包含了大量实例代码,旨在帮助读者深入理解和应用Mule ESB这一开源企业服务总线(Enterprise Service Bus)。Mule ESB是业界广泛采用的ESB解决方案...
本教程将带您入门Mule ESB项目,通过实例学习其核心概念和操作。 首先,我们需要理解ESB的基本概念。ESB作为一个中间件,它的主要作用是提供一种松耦合的方式,使得各个系统之间可以通过标准接口进行通信,而不是...
8. **基于EIP(Enterprise Integration Patterns)的事件路由**:Mule ESB利用这些标准模式实现复杂的路由和转换策略,提高数据处理的智能化和自动化程度。 在Mule ESB中,连接器(Connectors)扮演着关键角色,...
在学习和使用Mule ESB时,理解其基本概念和架构至关重要。`APDevFundamentals3.8_studentManual_20jun2016.pdf` 和 `APDevFundamentals3.8_studentManual_20jun2016【翻译狗www.fanyigou.com】.pdf` 这两个文件是...
同时,手册也强调了文档编写的重要性,以保证转换器的正确使用和维护。 11. 集成和提交Cloud Connector: 手册中还详细讲解了如何构建和测试Cloud Connector,并提供了将自己开发的连接器提交给MuleSoft的步骤。这...
MULE ESB-4.1社区版是Mulesoft为开发者提供的免费版本,它包含了基本的ESB功能,适合学习、开发和小规模项目部署。 在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint ...
MuleESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。MuleESB支持集成现有系统而无论其底层采用何种技术,如JMS、WebServices、JDBC、HTTP以及其他...