WSO2MI(Micro Integrator)是一个事件驱动的企业服务总线(Enterprise Service Bus),支持消息路由、数据格式转换、通讯协议转换,支持链接SAP、KAFKA、FTP、Restful API等。html
WSO2MI主要是用于企业现有不少不一样架构的项目之间消息传递。之因此会产生这样的状况,是因为企业为了快速创建信息化,而采用不一样的架构创建了不少项目,待到公司发展壮大后,各个项目间通讯就成为了一个大麻烦,基于此,WSO2出现了。率先出现的是WSO2EI,但过于笨重,WSO2MI则是跟随技术进步,能够容器化部署的轻量级企业消息总线。java
https://github.com/wso2/micro-integrator/releases/download/v1.1.0/wso2mi-1.1.0.ziplinux
mi使用jdk8,首先安装jdk8,配置好jdk环境git
直接解压github
unzip wso2mi-1.1.0.zip
进入bin目录下apache
cd wso2mi-1.1.0/bin
启动、关闭、重启,命令以下json
# 启动 sh micro-integrator.sh start # 关闭 sh micro-integrator.sh stop # 重启 sh micro-integrator.sh restart
[root@instance-wd4rux07 bin]# sh micro-integrator.sh start Error: JAVA_HOME is not defined correctly. CARBON cannot execute java
产生缘由:因为我安装的是openjdk,在profile中没有JAVA_HOME的配置api
解决办法:openjdk的安装位置通常在服务器
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
在/etc/profile中配置JAVA_HOME架构
vi /etc/profile
增长以下配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
刷新配置文件
source /etc/profile
日志文件位置在repository/logs/wso2carbon.log
打印出micro integrator is started in 5 sec即表示启动成功
不得不说,对接SAP的IDOC除了商用套件,也只有IDOC了。
SAP链接资源包以下所示
sapjco3.jar
libsapjco3.so
sapidoc3.jar
三个资源包均来自SAP官方网站,通常来讲,这三个资源包能够找sap的basis来提供。
注意:下载的时候须要登陆SAP帐号
sapjco3.jar和libsapjco3.so下载地址以下
sapidoc3.jar 下载地址以下
https://support.sap.com/en/product/connectors/jco.html#section_2129803369
特别注意:小编使用的是3.0.14版本
将这两个jar包放到WSO2的lib中
路径:wso2mi-1.1.0/lib
将libsapjco3.so放到jdk的lib中
路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre/lib/amd64
在wso2mi文件夹中找到conf,并在conf下建立文件夹sap
在sap文件夹下建立两个文件s4.dest和s4.server
*.dest文件:MI做为客户端来链接SAP的配置文件
*.server文件:MI做为服务端让SAP来链接的配置文件
S4.dest文件内容以下,内容都是由SAP的basis来提供
# SAP Application Server 的 IP 地址 jco.cient.ashost= # SAP Message Server 的 IP 地址 jco.client.mshost= # SAP GateWay 的 IP 地址 jco.client.gwhost= # SAP GateWay 的端口,通常是3301 jco.client.gwserv=3301 # SAP System number 通常是 01 jco.client.sysnr=01 # Sap 的 client jco.client.client=301 # 这里3是指 TCP/IP ,还有其余的链接方式须要跟SAP的basis联系 jco.client.type=3 # SAP 分组 jco.client.group=PUBLIC # SAP用户名 jco.client.user= # SAP密码 jco.client.passwd= # 语言 en表示英语 jco.client.lang=en # 空闲断开时间 jco.client.idle_timeout=300 # 登陆检查 0表示禁用 1表示启用 jco.client.logon=0 # message server 的端口 jco.client.msserv=3602 # 是否使用RFC的跟踪日志 0表示禁用 1表示启用 jco.client.trace=1 # SAP的单点登陆 0禁用 1启用 jco.client.getsso2=0 # SAP的 name, SAP的basis来提供 jco.client.r3name=CSD
S4.server文件内容以下,内容都是由SAP的basis来提供
# SAP中配置的名称 jco.server.name=WSO2_IDOC # SAP的gateway ip地址 jco.server.gwhost= # SAP gateway的端口 jco.server.gwserv=3301 # SAP中的program id jco.server.progid=WSO2_IDOC jco.server.connection_count=10 # 这个属性是指 s4.dest 去除后缀文件名 s4 jco.server.repository_destination=s4 jco.server.trace=1 jco.server.unicode=1 jco.server.max_startup_delay=60000
WSO2配置 SAP IDOC监听器
在conf文件夹下找到 deployment.toml,增长如下配置信息(sap的监听器配置)
[transport.sap] listener.idoc.enable=true listener.idoc.class="org.wso2.carbon.transports.sap.SAPTransportListener"
WSO2MI链接KAFKA 须要如下资源包
将资源包copy到wso2mi-1.1.0/lib下
开发WSO2MI须要使用WSO2的开发工具-WSO2 Integration Studio,绿色免安装
下载地址
https://wso2.com/integration/integration-studio/
直接解压,便可使用
WSO2的开发工具和eclipse基本一致。
建立一个WSO2的maven父工程
项目名称本身定义就行了
在proxy-services文件夹下,建立Proxy Service
建立完成后,会获得一个*.xml文件
初始文件内容以下
<?xml version="1.0" encoding="UTF-8"?> <proxy name="river" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse"> <target> <!-- 接收消息标签 --> <inSequence/> <!-- 返回消息标签 --> <outSequence/> <!-- 错误处理标签 --> <faultSequence/> </target> </proxy>
WSO2MI提供了两种编辑方式,一种是图形化界面拖动(以下图),一种是xml文档直接编辑。
这里要留一个WSO2MI开发的坑了,博主稍后专门针对WSO2MI开发写一篇
WSO2MI打成car包,而后部署到服务器上来运行。
WSO2MI打包有本身的一套体系,请以我为准。
右键上一步生成的项目,点击Export Composite Application Project
点击Next,选择本身的项目,就能够在响应目录下生成car包。
上一步咱们已经获得了car包,接下来,咱们把car包部署到WSO2MI中。
把car包放到/wso2mi-1.1.0/repository/deployment/server/carbonapps
从新启动WSO2MI