`

实战mule(2)

    博客分类:
  • ESB
阅读更多

3、http provider

首先把mule源码中的一个transform文件复制过来并编译到classes下面
HttpRequestToString.java  :

package org.mule.samples.hello;

import org.mule.config.i18n.Message;
import org.mule.transformers.AbstractTransformer;
import org.mule.umo.transformer.TransformerException;

import java.io.UnsupportedEncodingException;

/**
 * <code>NameStringToChatString</code> This is test class only for use with the Hello world
 * test application.
 *
 * @author <a href="mailto_ross.mason@symphonysoft.com">Ross Mason</a>
 * @version $Revision: 1.6 $
 */
public class HttpRequestToString extends AbstractTransformer
{
    /**
     *
     */
    public HttpRequestToString()
    {
        super();
        this.registerSourceType(String.class);
        this.registerSourceType(byte[].class);
    }

    /* (non-Javadoc)
     * @see org.mule.transformers.AbstractTransformer#doTransform(java.lang.Object)
     */
    public Object doTransform(Object src, String encoding) throws TransformerException
    {
        String param = null;
        if (src instanceof byte[]) {
          if (encoding != null) {
            try {  
              param = new String((byte[]) src, encoding);
            } catch (UnsupportedEncodingException ex){
                param = new String((byte[]) src);
            }
           } else {
              param = new String((byte[]) src);
           }
        } else {
            param = src.toString();
        }
        int equals = param.indexOf("=");
        if(equals > -1)
        {
            return param.substring(equals + 1);
        } else {
            throw new TransformerException(Message.createStaticMessage("Failed to parse param string: " + param), this);
        }
    }
}

在conf下编写相应的配置文件 test-http-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mule-configuration PUBLIC "-//SymphonySoft //DTD mule-configuration XML V1.0//EN"
                                "http://www.symphonysoft.com/dtds/mule/mule-configuration.dtd">

<mule-configuration id="file" version="1.0">
    <description>
        本测试由刘玉军完整测试,如果有问题请访问http://blog.csdn.net/lyj_china
    </description>
    <mule-environment-properties synchronous="true" serverUrl=""/>
    <transformers>
        <transformer name="HttpRequestToString" className="org.mule.samples.hello.HttpRequestToString"/>
    </transformers>
    <model name="test http">
        <mule-descriptor name="Service2" implementation="org.lyj.mule.Service">
            <inbound-router>
                <endpoint address="http://localhost:4567" transformers="HttpRequestToString">
                    <properties>
                        <property name="Content-Type" value="text/plain"/>
                    </properties>
                </endpoint>
            </inbound-router>
<!--
            <outbound-router>
                <router className="org.mule.routing.outbound.FilteringOutboundRouter">
                    <endpoint address="stream://System.out">
                    </endpoint>
                </router>
            </outbound-router>
-->
        </mule-descriptor>
    </model>
</mule-configuration>

在bin目录下创建testhttp.bat文件,内容如下
@echo off
REM There is no need to call this if you set the MULE_HOME in your environment properties
if "%MULE_HOME%" == "" SET MULE_HOME=..\..

REM Set your application specific classpath like this
SET CLASSPATH=%MULE_HOME%\testmule\conf;%MULE_HOME%\testmule\classes;

call %MULE_HOME%\bin\mule.bat -config ../conf/test-http-config.xml

SET MULE_MAIN=
SET CLASSPATH=

然后执行testhttp.bat,正常启动mule后,就可以看到效果了
通过 http://localhost:4567/name=success就可以看到页面上打印出success,mule后台打印出success;
如果把<mule-environment-properties synchronous="true" serverUrl=""/>去掉,就会发现页面是空白的,仅在后台打印出信息.

<!--EndFragment-->
分享到:
评论

相关推荐

    实战Mule:利用Mule调用XFire发布的Web服务

    【实战Mule:利用Mule调用XFire发布的Web服务】这一主题主要涵盖了两个核心概念:Mule ESB(企业服务总线)和XFire,它们都是在IT领域中的重要工具,尤其在分布式系统和集成解决方案中发挥着关键作用。 Mule ESB是一...

    实战Mule:利用Mule调用XFire发布的文件上传服务

    实战Mule调用XFire发布的文件上传服务,我们需要以下几个步骤: 1. **配置XFire服务**:首先,我们需要在XFire中创建一个文件上传服务。这通常涉及到编写一个Java接口,定义上传文件的方法,然后使用XFire提供的API...

    mule in action 即mule实战源码

    《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...

    mule in action mule 实战

    Mule in Action是一本关于Mule ESB(企业服务总线)的实战指南,旨在为读者提供深入的实践知识和案例分析。ESB作为一种流行的中间件技术,用于实现不同系统之间的服务集成。Mule作为一个开源的ESB解决方案,通过其...

    MULE用户指南3.3

    2. **MULE配置与部署**:用户指南将详细介绍如何配置MULE实例,包括设置环境变量、安装和启动MULE服务器,以及部署MULE应用到不同的运行时环境,如MULE Standalone或CloudHub。 3. **连接器(Connectors)**:MULE ...

    mule in action

    书中的9781782164401-Chapter-02.pdf可能涵盖了第二章的内容,Manning.Open.Source.ESBs.In.Action.Sep.2008.ISBN.1933988215.pdf可能是早期版本的《开源ESB实战》,而Mule ESB, 0909-full.pdf可能包含完整的Mule ...

    mule in action 第二版英文正式版

    - **第2章:使用Mule处理消息** - 消息模型和消息处理流程 - 如何使用Mule接收和发送消息 - 消息转换和路由的基础知识 - 实战示例:简单消息传递系统的设计与实现 - **第3章:利用连接器工作** - 连接器的概念...

    MULE实战-ESB企业服务总线

    ### 标题知识点:MULE实战-ESB企业服务总线 #### 什么是ESB(企业服务总线)? ESB是一种面向服务的架构模式,主要功能是实现不同系统之间服务的集成和通信。它充当一个中间件,支持不同协议、数据格式和通信模式的...

    mule_examples.rar_mule_mule 开发_mule-2.2.1-src

    《Mule ESB实战:基于mule-2.2.1-src的开发示例解析》 Mule ESB,作为一款强大的企业服务总线(Enterprise Service Bus),在集成和连接不同系统方面展现了卓越的能力。本篇文章将围绕"mule_examples.rar_mule_mule...

    MuleStudio用户手册.doc

    2. **创建首个 Mule 项目**: - 打开 MuleStudio,新建项目并指定项目名称和位置。 - 选择合适的项目类型(例如,基于 HTTP 的服务)。 - 设置项目的其他属性,如依赖库等。 3. **创建信息流程**: - 在项目中...

    Mule in action

    在《Mule in Action》中,你还会找到许多实战案例,涵盖了金融、电子商务、物流等多个行业的应用场景。这些案例展示了如何利用Mule解决实际问题,如何设计和实现复杂的集成流程,以及如何应对高并发、大数据量的挑战...

    我的第一次骑骡子旅行 Starup for Mule

    同时,结合实际项目实践,将理论知识与实战经验相结合,可以更深入地掌握Mule ESB的精髓。 总之,Mule ESB是一个强大的工具,对于构建灵活、可扩展的集成解决方案具有重要意义。通过“Starup for Mule”这样的教程...

    Mule in Action

    《Mule in Action》不仅是一本理论性的指南,更是一本实战手册,适合希望学习和掌握Mule ESB的开发者阅读。通过这本书的学习,读者将能够更好地理解和利用Mule的强大功能,从而在自己的项目中构建出高效、可靠的应用...

    mule esb cookbook

    《Mule ESB Cookbook》是一本专注于Mule ESB(Enterprise Service Bus,企业服务总线)实战技巧的书籍。Mule ESB是Anypoint Platform的一部分,由MuleSoft公司开发,是一个开源的企业级集成平台,用于构建连接应用...

Global site tag (gtag.js) - Google Analytics