文档库 最新最全的文档下载
当前位置:文档库 › Mule3.0开发图解教程

Mule3.0开发图解教程

Mule3.0开发图解教程
Mule3.0开发图解教程

环境搭建和例子:

Download mule standaloe from web site:

1.https://www.wendangku.net/doc/892078541.html,/download-mule-esb-community-edition

2.Unzip to a path(such as:D:\mulesl312)

Installing Mule IDE in Eclipse

3.Start Eclipse, and set up a workspace for your installation of Mule if you haven't already. (Make

sure your workspace does not have a space in the directory path)

4.In the workbench view, choose Help > Install New Software.

5.Press the Add button next to the Work with text box, enter

https://www.wendangku.net/doc/892078541.html,/mule-ide/updates/3.4/ and press Enter. The Mule IDE now appears in your list of available software.

6.Select the Mule IDE check box and click Next, and after Eclipse processes for a moment, click Next

again.

7.Review the Mule IDE license, select the option to accept the license, and then click Finish.

8.Click Yes to restart Eclipse.

9.Set Mule Distributions in eclipse:

You are now ready to configure the Mule distribution as described in the next section.

Config MULE_HOME and add bin to path:

10.MULE_HOME: D:\mulesl312

11.Path:%Path%; %MULE_HOME%\bin

Create a new Mule project:

How to Import a existing project to Mule project and run it:

there is some ecamples in example folder of MULE,wecanimport them

We neeed to add Mule classpath lib to the project

Then we can run the project on Mule runtime like as:

So server starts:

NFO 2011-06-22 11:38:01,125 [main]

org.mule.module.management.agent.JmxAgent: Registered Endpoint Service with name:

Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Endpoint,service="Hell o

World",connector=connector.http.mule.default,name="endpoint.http.loca lhost.8888"

INFO 2011-06-22 11:38:01,125 [main]

org.mule.module.management.agent.JmxAgent: Registered Connector Service with name

Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Connector,name="connec tor.servlet.mule.default.1"

INFO 2011-06-22 11:38:01,125 [main]

org.mule.module.management.agent.JmxAgent: Registered Connector Service with name

Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Connector,name="connec tor.stdio.mule.default.1"

INFO 2011-06-22 11:38:01,125 [main]

org.mule.module.management.agent.JmxAgent: Registered Connector Service with name

Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Connector,name="connec tor.VM.mule.default.1"

INFO 2011-06-22 11:38:01,125 [main]

org.mule.module.management.agent.JmxAgent: Registered Connector Service with name

Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Connector,name="connec tor.http.mule.default.1"

INFO 2011-06-22 11:38:01,140 [main] org.mule.DefaultMuleContext:

********************************************************************* *

* Mule ESB and Integration Platform *

* Version: 3.1.2 Build: 21975 *

* MuleSoft, Inc. *

* For more information go to https://www.wendangku.net/doc/892078541.html, * * *

* Server started: 11-6-22 上午11:38 *

* Server ID: 04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252 * * JDK: 1.6.0_10-rc2 (mixed mode, sharing) *

* OS encoding: UTF-8, Mule encoding: UTF-8 *

* OS: Windows XP - Service Pack 3 (5.1, x86) *

* Host: PC-201103071221 (192.168.40.61) *

* Mode: Development *

* *

* Agents Running: *

* JMX Agent *

********************************************************************* *

mule-config.xml:

transformer-refs="HttpRequestToNameString"

exchange-pattern="request-response">

//所有的转换器都在此,就我理解所有的转换过程其实都要自己写,可以自己定义通用的转

换器重用并扩展。

//public class ChatStringToString extends AbstractTransformer 父类

class="org.mule.example.hello.StringToNameString"/>

class="https://www.wendangku.net/doc/892078541.html,StringToChatString"/>

class="org.mule.example.hello.ChatStringToString"/>

class="org.mule.example.hello.HttpRequestToNameString"/>

class="org.mule.example.hello.ExceptionToString"/>

class="org.mule.transport.servlet.transformers.HttpRequestToParameter "/>

class="org.mule.transformer.simple.ObjectToString"/>

理论和模型:

1. 简介

Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。

2. 整体结构

图整体结构

从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、Transaction Management(事务管理)、Transformation (转换)、Message Broker(消息代理)、Transportation Management(传输管理)、Security(安全)等核心模块。Mule可以单独使用,也可以架设在常用的应用服务器上。

图架构简图

外围系统的服务请求通过Mule ESB的Transport接入,Mule通过Transformer进行数据的格式转换,然后经过Inbound Router进行消息过滤(内部通过配置filter实现)后交给Mule的Component进行业务逻辑处理,处理后的结果通过Outbound Router确定传递给哪个接收方,然后通过Transformer进行数据格式转换,通过Transport连接至接收方,传递信息。

此图描述的是Mule中的一个典型场景的处理过程,涵盖了Mule中的各个关键组件。其中某些处理步骤不是必须的,如Inbound Router、Transformer。后续可以看到一些其他场景的处理。

3. 功能

a. 服务中介

?将业务逻辑和消息发送分离

?屏蔽服务的消息格式和协议

?提供任意位置的服务调用

?提供协议桥接

b. 数据转换

?在应用间交换不同格式的信息

?操作消息的负载内容,包括加密、压缩和编码转换

?在异构的传输协议的数据类型间格式化消息

c. 消息路由

?基于消息内容和复杂规则路由消息

?消息的过滤、聚合以及重新排列序号

d. 服务创建和托管

?暴露端点、EJB、Spring Bean以及POJO作为服务

?作为轻量级的服务容器进行服务托管

Mule ESB中有一些基本的概念,理解这些基本概念后才能理解Mule的内部机制。从中也可以看到Mule解决问题的基本思路。

4. 基本概念

4.1 Model

Model表示托管各个服务的运行时环境。

图Model

4.2 Service

Service是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。

图Service

4.3 Transport

Transport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。

图Transport

4.3.1 Connector

Connector用于管控特定协议的使用,如HTTP Connector、JMS Connector 等。

4.3.2 End-Point

Endpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何被使用。

Endpoint定义于Inbound和Outbound Router中。

4.4 Transformer

Transformer用于转换消息的内容。

图Transformer

4.5 Router

Router使用Filter基于消息中的属性信息进行消息的分发。

图Router

Router在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。

4.6 Component

Component是Service的核心部件,是Service的业务逻辑的实现。

图Component: implicit bridge component

Component可以是Java Class(POJO、Spring Bean)、Web Service、Script等。

Component可定义自己的生命周期:initialise、start、stop、dispose,不过需要实现Mule的LifeCycle接口。Mule 3.0版本开始提供@PostConstruct和@PreDestroy 的注解,对应生命周期的initialise和dispose阶段,不需要实现Mule的LifeCycle 接口了。

4.7 Flow(@since 3.0)

Flow是Mule 3.0新引入的,包含一个消息源(Message Source)和多个消息处理器组成的处理器链。

图Flow

根据实际需求着重检查了一下Mule ESB的消息传递方式。Mule支持常用的几种消息传递方式,能够满足要求。

5. 消息传递方式

5.1 异步方式

异步方式是一种单向调用,调用者不需要获得响应。

图Asynchronous

异步方式通过inbound和outbound endpoint的exchange-pattern=”one-way”实现。

使用基本的Stdio Transport验证,通过标准输入传输字符串,将其原样传递给标准输出进行显示。相应配置如下:

xml 代码

运行服务,控制台显示结果如下:

其中INFO输出是Mule第一次初始化相应Connector打印出来的,之后

调用服务不会再次显示。

异步方式适用于简单的消息传递的场景。

5.2 请求-响应方式

请求-响应方式即请求方调用服务后,服务立即处理并返回响应结果,不需将消息再次传递。

图Request-Response

请求-响应方式通过input endpoint的exchange-pattern=”request-response”

实现,相应配置如下:

xml 代码

上边是通过service配置的,通过flow配置如下:

xml 代码

在浏览器中输入

“http://localhost:7007/services/Echo/echo/text/hello,world”,浏览器中会显示“hello,world”的输出信息。

请求-响应方式适用于单次服务调用的场景。

5.3 同步方式

同步方式即请求方调用服务后,component将处理结果发送给另一个外部服务处理,并将处理结果反方向返回。

图Synchronous

同步方式通过inbound和outbound endpoint的exchange-pattern=”request-response”实现,相应配置如下:

xml 代码

同步方式适用于通过Mule调用远程服务的场景。

5.4 异步请求-响应方式

异步请求-响应方式即请求方调用服务后不需要立即获得返回结果,component将请求发送给其他外围系统处理(可能有多个),全部处理完毕后通过指定的异步应答Router返回给请求方。

图 Asynchronous Request-Response

异步请求-响应方式通过在OutBound Endpoint中增加reply-to以及增加async-reply节点实现,响应配置如下:

xml 代码

异步请求-响应方式适用于请求需要被多个远程服务并行处理,结果需

要汇总处理后返回的场景。

注:上述代码未运行通过,queue1和queue2获得了请求消息并正常处理,但返回至async-reply时抛出异常,暂未定位到问题。

后将collection-async-reply-router改为single-async-reply-router未报异常,代码示例如下:

xml 代码

附加参考图:

微信公众平台快速上手教程

微信公众平台快速上手教程Part1 注册账户与认证 刘子骏微信微博营销微信, 微信公众平台17Comments发表评论 这段时间越来越多朋友和客户开始关注微信,我收到大量咨询微信公众平台在哪里注册等相关问题,所以不如写篇教程出来,以后大家看教程就可以了,本教程会根据微信最新变动而不断修改和完善的。 注册前最好做好以下准备: 1、想一个容易给客户识别和方便记忆的中文名称,毕竟用户通过中文名称搜索的频率是最高的,而且最好是品牌名,或者是企业名称的缩写,例如广州火鹰信息科技有限公司,注册名就可以改成火鹰科技,这样方便记忆也方便查询。如果你想加大被搜索几率,可以在名称后面加入主营业务信息,例如卡斯玛男装或卡斯玛正装,这样用户搜男装或正装都有机会找到你。这里还有一点要特别注意的是微信公众平台的名称注册后是不能修改的,所以填写时一定要先谨慎考虑。 2、准备好身份证正背面的扫描件 3、设计好微信头像图片,一般300×300像素就可以了 然后就可以直接登录https://www.wendangku.net/doc/892078541.html,/就可以开始注册。 点击注册按钮后进入注册界面

以前微信是强制要求使用QQ账户登陆注册的,现在改成了随便使用一个可以收发邮件的邮箱就可以注册了。完成这一步会提示需要到注册邮箱激活账户!

点击邮件的激活链接后,会出现以下页面,这也是微信公众账户注册的第三步,这就需要之前提到的身份证扫描件(特别提示一下,一个身份证可以注册5个帐号。),还需要用手机进行短信验证。该页面除了个人住址和单位地址是可以不填之外,其他都必须填写,而且资料一定要真实,否则微信日后检查发现资料有问题会随时有封号的危险,当你填写完成后,系统也会提醒说明的。

微信公众平台的Java的开发详解工程代码解析

说明: 本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让初学者尽快上手。 在阅读本文之前,应对微信公众平台的官方开发文档有所了解,知道接收和发送的都是xml格式的数据。另外,在做内容回复时用到了,这是一个自然语言解析的开放平台,可以帮我们解决整个微信开发过程中最困难的问题,此处不多讲,下面会有其详细的调用方式。 在登录微信官方平台之后,开启开发者模式,此时需要我们填写url和token,所谓url就是我们自己服务器的接口,用来实现,相关解释已经在注释中说明,代码如下: [java] 1.package; 2.import 3.import 4.import 5.import 6.import 7.import 8.import 9.import 10.import 11.import 12./** 13.*微信服务端收发消息接口 14.* 15.*@authorpamchen-1 16.* 17.*/ 18.publicclass WechatServlet extends HttpServlet{ 19./** 20.*ThedoGetmethodoftheservlet.
21.*

22.*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. 23.* 24.*@paramrequest 25.*therequestsendbytheclienttotheserver 26.*@paramresponse 27.*theresponsesendbytheservertotheclient 28.*@throwsServletException 29.*ifanerroroccurred 30.*@throwsIOException 31.*ifanerroroccurred 32.*/ 33.publicvoid doGet(HttpServletRequestrequest,HttpServletResponseresponse) 34.throws ServletException,IOException{ 35.("UTF-8"); 36.("UTF-8"); 37./**读取接收到的xml消息*/ 38.StringBuffersb=new StringBuffer(); 39.InputStreamis=(); 40.InputStreamReaderisr=new InputStreamReader(is,"UTF-8"); 41.BufferedReaderbr=new BufferedReader(isr); 42.Strings=""; 43.while((s=())!=null){ 44.(s); 45.} 46.Stringxml=();rocessWechatMag(xml); 47.} 48.try{ 49.OutputStreamos=(); 50.("UTF-8")); 51.(); 52.(); 53.}catch(Exceptione){ 54.(); 55.} 56.} 57./** 58.*ThedoPostmethodoftheservlet.
59.* 60.*Thismethodiscalledwhenaformhasitstagvaluemethodequalsto 61.*post. 62.* 63.*@paramrequest 64.*therequestsendbytheclienttotheserver 65.*@paramresponse

微信公众平台开发教程

微信公众平台视频教程 一、注册并登录接口(这里里以微小信平台https://www.wendangku.net/doc/892078541.html,/WxUser/login 为 例) 二、添加公众号 如何获取微信初始ID? 企鹅:328258258获取微信开发教程激活码:https://www.wendangku.net/doc/892078541.html,/course/79

页面上的gh_xxxxxxxxxxxx就是初始id,不过我想,这么难记的id,大家肯定都修改了。 但偏偏我们还需要使用它,比如我们要加入微信导航网站,比如我们要制作艺术二维码,比如我们要做微信互推等等,都是需要使用微信初识id的。 你修改时没保存吧,没关系的,我告诉大家如何查找微信初始id。 ?首先,登陆微信公众平台。 ?设置/个人设置。 ?下载二维码。 这里请不要使用右键另存为,一定要直接点击下载。 ?弹出对话框。

注意,图示中这个二维码的文件名是:qrcode_for_gh_d019da958e55_430.jpg 去头去尾,gh_d019da958e55就是该微信公众号的原始id。 或者找到你刚下载保存的文件。 也可以看到gh_xxxxxxxxxxxx的字样,复制该字段即可。 三、点配置接口

记下接口地址和Token,然后勾选下面列出的功能(在第七个部分会用到) 四、登录微信公众平台(https://www.wendangku.net/doc/892078541.html,/),进行身份认证,填写信息,提交身份证。 五、认证后,点击高级功能→进入开发模式

六、点击"成为开发者"按钮 七、填写接口配置信息 url和Token写刚才记下的(在第4个步骤上记得)

八、确认开启 九、在手机上用微信给你的公众号输入"功能",测试你的接口是否配置正常!

微信开发第三方使用教程

平台功能操作说明 深圳纽扣时代微宝微信第三方开发平台拥有近百项功能,既包含常见的各类智能自动回复(图文、音频等形式)功能、营销活动推广模块、微网站和强大的会员卡系统,又涵盖了针对各个行业(餐饮、房产、汽车、婚庆、医疗、旅游等)的微信营销应用,另外系统还自带完善的粉丝经管和详细的数据统计分析功能,让用户可以方便的经管粉丝信息,并直观的看到各模块的数据统计、粉丝的行为分析结果、粉丝喜好和周期关注趋势对比等信息。这些功能为微信营销平台运营者提供了有力的市场竞争力。 平台功能目录 微宝CMS平台功能特点及优势错误!未定义书签。 微宝CMS平台设置操作3 微宝CMS平台功能页面7 (1)功能经管:8 (2)关注时的回复与帮助:8 (3)微信-文本回复:8 (4)微信-图文回复:8 (5)微信-语音回复:9 (6)自定义LBS回复10 (7)回答不上来的配置:10 3G网站设置10 (1) 首页回复配置10 (2) 分类经管10 (3) 模板经管:12 (4) 首页幻灯片:13 (5) 轮播背景图13 (6) 底部导航菜单13 (7) 自定义菜单14 (8) 留言板14 (9) 微论坛14 行业应用15 (1) 无线订餐15 (3) 婚庆喜帖17 (4) 3G微投票18 (5) 微汽车18 (6) 楼盘房产20 (7) 微教育22 (8) 微医疗:25

(9) 酒店宾馆:26 (10) 万能表单:26 电商系统30 (3)微信商城系统:32 (4) DIY宣传页39 (5) 3G图集:40 微用户经管CRM41 粉丝经管41 分组经管41 粉丝行为分析41 渠道二维码41 人工客服42 群发消息43 分享经管44 推广活动45 (1) 幸运大转盘:45 (2) 优惠券:46 (3) 刮刮卡47 (4) 幸运水果机:47 (5) 砸金蛋:48 (6) 祝福贺卡:48 (7) 摇一摇:48 (8) 微信墙:50 (9) 微信wifi:50 会员卡51 统计分析58

微信人生攻略之微信公众平台教程.

微信人生公众平台开发教程 2.1 如何注册微信公众号? 登录微信公众平台,点击注册填写相关信息即可申请微信公众号,微信公众号只能在PC端登录,不能用 手机端,公众号分服务号和订阅号,企业可申请服务号,个人、自媒体申请订阅号,服务号每个月限制群发一条,而订阅号每天可发送一次。 2.2 如何添加公众号? 登录微信人生后会提示一键升级或手动升级,将您的公众账号和密码填写上,即可实现升级。 注意: 1、公众号名称与微信公众平台公众号名称保持一致。 2、如果您是服务号,将您在公众平台申请的AppId和AppSecret填写到微信人生上去,提交完id和密钥 后,可以在【菜单设置】中设置各个菜单项,然后进行发布,您的微信公众号便支持自定义菜单了 2.3 首次关注 首次关注回复:指粉丝关注微信公众号后推送的第一条信息,可以是文本,也可以是图文,如果需要图文回复,点击切换到图文模式。 TIPS:如果想关注时默认进到微网站,可以不填写图文内容,然后在图文外链地址里面填写微官网首页地址,微官网首页地址在微官网设置里可以看见。 2.4 文本回复 文本回复指添加关键后回复的内容是文本。点击添加按钮 如上示例:定义了关键词你好,当用户在公众号发送“你好”的时候,将会回复“哈哈” 如果想定义多个关键词用英文逗号隔开,拒绝中文逗号,如:你好,在吗,哈哈 匹配类型分完全匹配和模糊匹配。 2.5 图文回复 点击素材管理,进入素材管理界面,选择单图文或多图文。 单图文是指只显示一个图文。填写触发关键词,图文标题、图文简介,上传图文封面。

地址点击图片跳转到的URL。 多图文是指在显示多条图文。 在这里多图文需要一条一条创建,点击图片上的“铅笔”符号,进行某一图文的编辑。 地址点击图片跳转到的URL。 添加完之后,回到关键字回复,回复类型选择图文,在图文资料中选择你要回复的图文即可。 注:素材管理是整个微信人生平台的素材库,关键字回复中的内容可以从素材的图文中选择。 2.6 自定义菜单 自定义菜单是企业微信公众号消息框底部的导航菜单,可以很方便用户进行交互,相当于一个轻量级的APP。 目前自定义菜单只对服务号开放,服务号认证需要企业认证,所以如果是订阅号这个功能是用不了的,如果服务号还没有申请自定义菜单,可以点击-高级功能-开发模式,会有一栏会话界面自定义菜单,点击申请就可以了,申请成功后的界面如下: 将AppId 和AppSecret填写在微信人生平台授权里 菜单设置:自定义菜单目前限制只能3个一级菜单,5个二级菜单,每一步设置后要保存菜单。 主菜单名称就是显示在消息框的一级菜单,可以回复文本或图文,图文信息在素材管理理设置好后,可以选择。 添加二级菜单,点击一级菜单后可以创建二级菜单,二级菜单只能同时启用5个。 点击保存菜单,保存自定义菜单设置,注意这时候并未生成自定义菜单,需要点发布自定义菜单。 2.7 LBS设置 用户点击“新增”,添加商家店面的信息,多个店面可添加多条LBS。 使用方法: 1、LBS数据:设置商铺的地理位置即可; 2、填写标题、店面封面、电话、简介、详细页内容。

相关文档
相关文档 最新文档