EDI的开源实现OpenAS2

最近公司要对接一个平台,该平台使用EDI规范传送文件数据。综合考量一圈,最后选择OpenAS2,开源免费,特符合我们小公司的气质。话不多说,开工。

一、不管三七二十八,跑起来先

首先弄到一个版本代码,比如到https://sourceforge.net/projects/openas2网站下载,结构如下
在这里插入图片描述
上传到linux服务器,解压,到bin目录执行./start-openas2.sh,如果没有报错,服务就已经跑起来了
在这里插入图片描述
如果有报错,可能是你java环境问题,环境必须配置JAVA_HOME。

CLASSPATH:  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PATH: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

成功启动后会生成2个新目录:data和log,log目录用于记录日志,不管它。我们来看看data目录
在这里插入图片描述
data目录下有很多子目录
在这里插入图片描述
在toAny目录下创建一个文件,命名为OpenAS2A_OID-OpenAS2B_OID.txt,几秒钟后文件就会发给OpenAS2B
OpenAS2A_OID-OpenAS2B_OID目录下就能看到接收到的文件。具体的文件是放在inbox目录下
在这里插入图片描述
下面是控制台的日志
在这里插入图片描述

或者随便创建一个文件hellow.txt丢到toOpenAS2A目录里,几秒钟后就会发给OpenAS2A,在OpenAS2B_OID-OpenAS2A_OID目录下就
能看到接收到的文件。具体的文件是放在inbox目录下
在这里插入图片描述
注意看我说的,放在toAny目录下的文件名称是有要求的,名字上要体现谁发给谁,例如OpenAS2A_OID-OpenAS2B_OID.txt,放在toOpenAS2A就没有要求,为什么是这样?这就要说到OpenAS2的配置了

二、回头看配置

OpenAS2的配置文件都放在config目录下,其中2个重要的配置:config.xml和partnerships.xml

config.xml是应用程序配置,文件中的一些关键配置设置是:
• 定义要在OpenAS2应用程序中激活的模块
• 覆盖AS2代码库中的模块默认类
• 增强或改变模块的行为以及模块的输入和输出
• 定义证书和密钥存储库的位置
• 定义伙伴关系配置文件的位置
• 指定监听端口
• 启用对高可用性/负载平衡环境的支持

名为partnerships.xml的文件将配置与您要交换数据的合作伙伴相关的所有信息:
• 合作伙伴定义
• 签名、加密
• 消息压缩
• MDN等等

这里的内容就比较多了, 不展开详述。在代码包里有OpenAS2HowTo.pdf文件做了详细说明,建议参考给的示例配置来修改成自己的合作伙伴配置,重要的一点是不管是双向发送还是单向发送文件,partnerships.xml中都要做2个方向的配置。

三、整成守护进程自动启动

通过bin目录下的start-openas2.sh启动,当离开或关闭命令窗口时服务也就随之停了。所以我们还要做如下的事

1、删除多余配置

虽然不对默认配置进行任何更改,该应用程序就能作为一个守护进程启动,还是建议进行以下配置更改,以减少在此模式下冗余的模块的不必要处理,并向系统日志中填充不必要的日志记录:

  1. 删除 console logger – 删除元素中的元素,如下
  2. 删除元素中的流命令处理器,如下

2、INIT.D服务

在安装包的bin目录中提供了一个示例“openas2.d”。它提供了对使用init.d机制作为守护进程启动和停止OpenAS2应用程序的支持。使用适当的NIX操作系统的工具,将脚本安装在/etc/init.d文件夹中,并创建软链接,以便在系统启动时启动OpenAS2应用程序。
首先修改openas2.d文件以反映您安装OpenAS2的路径,然后按照下面的选项之一进行操作。
以基于Redhat的系统为根目录:

$ cp <srcDir>/bin/openas2.d /etc/init.d/
$ chkconfig --add openas2.d
$ chkconfig --level 2345 openas2.d on

在基于Debian/Ubuntu的根目录系统上:

$ cp <srcDir>/bin/openas2.d /etc/init.d/
$ chmod 750 /etc/init.d/openas2.d
$ update-rc openas2.d defaults

在基于Centos的根目录系统上:

$ cp <srcDir>/bin/openas2.d /etc/init.d/
$ chmod 750 /etc/init.d/openas2.d
$ chkconfig --add openas2.d

3、系统服务

在安装程序包的bin文件夹中提供了一个示例文件openas2.service。
首先修改openas2.d文件以反映您安装OpenAS2的路径,然后按照下面的步骤操作。

$ cp <srcDir>/bin/openas2.service /etc/systemd/system/
$ systemctl daemon-reload
$ systemctl enable openas2.service

使用以下命令测试它是否可以工作:

$ systemctl enable openas2.service
$ systemctl start openas2.service
$ systemctl stop openas2.service

四、总结

其他的就不讲了,看下OpenAS2HowTo.pdf这个文档就全明白了。应该有像我这样对英语文档超级不爽的小伙伴,所以我把它翻译成了中文,文法上可能不是很符合我们母语的表达习惯,但是相信你基于强大的中文表达能力应该能看懂。
https://github.com/OpenAS2/OpenAs2App ,源码在此
附件
链接:https://pan.baidu.com/s/1QEXGWGsmPQQaESXl0xLdnA
提取码:rpqu

附件说明:

OpenAS2Server-2.4.3.zip 代码包,里面有英文版使用说明OpenAS2HowTo.pdf
portecle-1.9.rar 密钥库生成工具,解压后双击portecle.jar就会弹出界面,OpenAS2要求密钥库必须是.p12结尾,你也可以使用OpenSSL命令,例如

openssl pkcs12 -export -in gateway.pem -inkey gateway.key -out gateway_certs.p12

OpenSSL具体说明 https://www.likecs.com/show-306390700.html
OpenAS2说明.doc 是我翻译的中文版使用说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值