WSO2-MI 與 SAP IDOC集成

WSO2-MI 與 SAP IDOC集成

簡介

WSO2MI(Micro Integrator)是一個事件驅動的企業服務總線(Enterprise Service Bus),支持消息路由、數據格式轉換、通信協議轉換,支持連接SAP、KAFKA、FTP、Restful API等。

  • 數據格式,可支持xml、json、csv等等
  • 通信協議,可支持SOAP、Restful API、RFC/IDOC等等
  • 連接軟件,可支持SAP、KAFKA、FTP等等

​WSO2MI主要是用於企業現有很多不同架構的項目之間消息傳遞。之所以會產生這樣的情況,是由於企業為了快速建立信息化,而採用不同的架構建立了很多項目,待到公司發展壯大后,各個項目間通信就成為了一個大麻煩,基於此,WSO2出現了。率先出現的是WSO2EI,但過於笨重,WSO2MI則是跟隨技術進步,可以容器化部署的輕量級企業消息總線。

下載地址

https://github.com/wso2/micro-integrator/releases/download/v1.1.0/wso2mi-1.1.0.zip

Linux安裝

mi使用jdk8,首先安裝jdk8,配置好jdk環境

直接解壓

unzip wso2mi-1.1.0.zip

進入bin目錄下

cd wso2mi-1.1.0/bin

啟動、關閉、重啟,命令如下

# 啟動
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的配置

解決辦法: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即表示啟動成功

WSO2MI 配置 SAP-IDOC

不得不說,對接SAP的IDOC除了商用套件,也只有IDOC了。

資源包

SAP連接資源包如下所示

  • sapjco3.jar

  • libsapjco3.so

  • sapidoc3.jar

三個資源包均來自SAP官方網站,一般來說,這三個資源包可以找sap的basis來提供。

注意:下載的時候需要登錄SAP賬號

sapjco3.jar和libsapjco3.so下載地址如下

https://help.sap.com/viewer/00f68c2e08b941f081002fd3691d86a7/release/en-US/ffe3b941e82641bc97b76ce522423d83.html

sapidoc3.jar 下載地址如下

https://support.sap.com/en/product/connectors/jco.html#section_2129803369

特別注意:小編使用的是3.0.14版本

服務器配置資源包

配置sapjco3.jar、sapidoc3.jar

將這兩個jar包放到WSO2的lib中

路徑:wso2mi-1.1.0/lib

配置libsapjco3.so

將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

SAP連接信息配置

在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 必要資源包

資源包

WSO2MI連接KAFKA 需要以下資源包

  • kafka_2.11-2.4.1.jar
  • kafka-clients-2.4.1.jar
  • metrics-core-2.2.0.jar
  • scala-library-2.11.12.jar
  • zkclient-0.10.jar
  • zookeeper-3.6.0.jar

將資源包copy到wso2mi-1.1.0/lib下

WSO2MI開發工具

下載

開發WSO2MI需要使用WSO2的開發工具-WSO2 Integration Studio,綠色免安裝

下載地址

https://wso2.com/integration/integration-studio/

直接解壓,即可使用

創建項目

WSO2的開發工具和eclipse基本一致。

創建一個MAVEN父工程

創建一個WSO2的maven父工程

項目名稱自己定義就好了

在父工程下,創建一個ESB項目

創建一個proxy service

在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打包有自己的一套體系,請以我為準。

在maven父工程下創建一個打包工程

生成car包

右鍵上一步生成的項目,點擊Export Composite Application Project

填寫名稱以及路徑

點擊Next,選擇自己的項目,就可以在響應目錄下生成car包。

部署

上一步我們已經得到了car包,接下來,我們把car包部署到WSO2MI中。

把car包放到/wso2mi-1.1.0/repository/deployment/server/carbonapps

重新啟動WSO2MI

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!