一步一步学Mule ESB——(第二篇:Ajax篇)

待完成功能

  1. 使用Ajax请求向后端发送请求
  2. 把网页的数据转换成请求的处理流
  3. 使用XSL and Mule Transformers转换成Google API可以理解的格式
  4. 创建一个Google API的拼写检查,处理网页输入
  5. 返回XML数据到页面
  6. 实施一个Jetty服务器在流程中

创建工程

创建工程ajaxflow,然后在ajaxflow.mflow中加入以下组件:

              图:ajax请求流程

添加和配置Ajax接口

在ajaxflow.mflow中选择Global Elements

    图:选择全局元素

点击Create,出现Choose Global Type窗口。

打开Connectors,然后选择Ajax

            图:选择接口中的Ajax

分别在Server URLResource Base中输入:

http://127.0.0.1:8090/Ajax

和 src/main/app/docroot

            图:Ajax设置

点击OK完成就可以在列表中看到Ajax接口了。

          图:Ajax接口

然后双击flow中的Ajax元素,配置Ajax Endpoint,设置Channel:

          图:Channel设置

然后设置引用:

选择我们上边设置的Ajax全局接口。

配置XSLT转换

下载xsl文件:

transform.xsl file

保存进你的MuleStudio > examples > AjaxSpellChecker > TransformFile目录中

然后右键工程,选择Import,选择File System,导入刚才保存好的transform.xsl,将导入的文件放到工程的src\main\app目录下。

做完上面的步骤,双击XSLT transformer会出现Pattern Properties窗口,配置如下参数:

            图:转换属性配置

配置Http请求

双击HTTP Endpoint出现Endpoint Properties窗口。

进行设置如下:

            图:Http Endpoint设置

然后设置HTTP Settings,Content Type属性:

            图:HTTP Settings设置

导入页面并测试

先新建文件夹,New > Folder. 名称为/main/app/docroot,然后在新建的文件夹上点右键,导入示例页面,

页面的位置在MuleStudio > examples > AjaxSpellChecker >HTMLfile中的SpellChecker.html文件。

然后启动Run as Mule Application,启动成功后我们能看到:

        图:ajaxflow启动应用

然后打开浏览器输入http://127.0.0.1:8090/Ajax/SpellChecker.html

        图:Ajax请求页面

根据输入内容的不同,控制台就会输出对应的处理内容了。

          图:控制台打出的日志信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序源代码

java招聘面试

过完年了,好多学习JAVA的同学在忙着找工作,大家先预习下这些基础知识 ,说不定能面试的时候考到。 基础篇 1 什么是Java、Java2、JDK?JDK后面...

49850
来自专栏程序员互动联盟

为什么那么多人觉得java过时了?

现在的java在编程界基础已经根深蒂固了,随之带来的影响就是有大量的岗位,大量的工作方向,虽然现在很多的新兴语言势头都非常的猛烈,但是这并不影响java依然体量...

38860
来自专栏大闲人柴毛毛

Java并发编程的艺术(十三)——锁优化

自旋锁 背景:互斥同步对性能最大的影响是阻塞,挂起和恢复线程都需要转入内核态中完成;并且通常情况下,共享数据的锁定状态只持续很短的一段时间,为了这很短的一段时...

39250
来自专栏AI科技评论

独家丨基于规则和检索的聊天机器人引擎

AI 科技评论按:本文作者王海良,呤呤英语开发总监,北京 JavaScript/Node.js 开发者社区的运营者,曾就职 IBM 创新中心。本文为系列文章第二...

49780
来自专栏程序员互动联盟

程序员必备的三大核心竞争力

任何职业都有其内在的底蕴,作为一个程序员需要具备的几个竞争力是啥,如何让自己做一个不过时并且一直保持市场竞争力的程序员,特别是一些入行还不是很长时间的程序员是要...

377130
来自专栏大闲人柴毛毛

Java并发编程的艺术(十)——线程池(1)

线程池的作用 减少资源的开销 减少了每次创建线程、销毁线程的开销。 提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高...

35560
来自专栏程序员互动联盟

多年Java开发研究机器学习技术需要哪些基础?

多年的java开发经验切入到新的领域,需要熟悉的新规则和技巧。 但对于人工智能来说,不是简单的熟悉一下新的规则那么简单的事情了,主要人工智能是一个综合性极强,...

385120
来自专栏大闲人柴毛毛

Java并发编程的艺术(十二)——线程安全

1. 什么是『线程安全』? 如果一个对象构造完成后,调用者无需额外的操作,就可以在多线程环境下随意地使用,并且不发生错误,那么这个对象就是线程安全的。 2. ...

39150
来自专栏机器学习AI算法工程

工程师回帖:求助各位数据挖掘前辈~~

求助各位数据挖掘前辈~~ 还有几天就马上研一了,我学的是数据挖掘方向,具体方向应该是微博文本类,这段时间学的挺乱的,一直没有个方向的感觉。假期期间把老师推荐的...

36150
来自专栏大闲人柴毛毛

Java并发编程的艺术(十一)——线程池(2)

Executor两级调度模型 ? 在HotSpot虚拟机中,Java中的线程将会被一一映射为操作系统的线程。 在Java虚拟机层面,用户将多个任务提...

39980

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励