概要说明:
本次的ESB使用的是Mule ESB,其官网是https://developer.mulesoft.com/,目前官网提供的社区版和企业版,企业版是收费的,功能齐全,本次开发使用的是社区版本的,Mule ESB 目前最新的IDE是AnypointStudio,它是基于Eclipse重构而来的,使用的部署工具是mule-standalone-3.8.0。
配置说明:
在AnypointStudio的mule poject中需要注意以下几点:
1. 本次部署的项目名是firstproject,其结构如下:
第一个Flow可以灵活配置系统中需要暴露的接口,提供第三方来接入,第二个Flow可以配置需要连接的数据库,写入sql语句返回JSON结果。
2. Http的配置:
这里的Host指的是当前mule project运行的Host。
另一个http的配置的Host应该为系统运行的Host,这里配置的是在本地运行的。
3. 部署配置
Mule ESB部署有两种方法,两种方法各有优势。
方法一:使用mule-standalone(优点:体积小,启动方便。缺点:只能看日志文件来分析问题和流程的走向,配置多)
mule-standalone和java一样需要配置环境:
配置完后再cmd输入mule,出现如下图则配置成功。
目前只需要将Anypoint Studio 开发出来的工程文件夹放入mule-standalone/apps下面,并且需要把apps文件下面有个default文件夹中的mule-config.xml文件复制到当前开发出来的工程文件夹中,不然是部署不成功的。
然后删除apps文件夹下面的default文件夹。
Windows 环境下,进入mule-standalone\bin目录, 执行mule.bat 文件即运行,关闭此命令行界面即可停止服务。
Linux 环境下,命令进入 mule-standalone\bin目录,执行./mule start 进行启动,执行./mule stop 来停止服务。
方法二:使用anypointstudio直接运行(优点:流程的走向可以实时的显示在界面上,便于分析问题,无需其他额外配置。缺点:体积稍大)
4. 调用方式
目前 上部署的ESB 是社区免费版,没有监控管理控制台功能。第三方可以通过两种方式调用:
一.正常的基于http 的 GET,POST请求
http://www.jjjj.com:8088/osb?callName=调用方法&参数名=参数值
说明 |
示例 |
注意事项 |
URL |
http://test.dingming.cc:8083 |
|
callName参数 |
callName=com.es.der.addTest() |
|
其他请求参数 |
stuId=y67843iejdi6688923 |
|
二. 通过js 进行跨域访问,示例如下:
$.ajax({
url: "http://localhost:8083/osb?callName=com.es.der.addTest()",
data: {"classId":"c123","stuId":"s123"},
dataType: "jsonp",
jsonp: "callback", jsonpCallback:"jsonpCallback",
success: function(resdata,textStatus, jqXHRult){
if(resdata !=null){
$("#returns").val($.toJSON(resdata));
}
}
});
三.通过nginx做路由地址正则匹配,具体实现看这篇文章(http://blog.csdn.net/lh2420124680/article/details/62057029)