eas、shr使用sap jco方式对接SAP,部署linux服务器踩得坑原创
金蝶云社区-steven4812
steven4812
14人赞赏了该文章 709次浏览 未经作者许可,禁止转载编辑于2023年04月04日 15:37:50

       eas(包括shr)现在和SAP对接的方式一般是通过jco调用sap的接口,在开发前,你必须拿到3个文件:

1、sapjco3.dll (windows操作系统使用);

2、sapjco3.jar (供java代码调用);

3、libsapjco3.so(linux操作系统使用)


       如果没有正确的放置sapjco3.dll(windows) 或libsapjco3.so(linux)文件时,一般会报NoClassDefFoundError的错误:

image.png


一、本地开发环境(windows系统)

在本地开发时一般使用windows系统,BOS工具开发,可以将sapjco3.jar放到lib/sp下

image.png

并在xxxxx_lib.xml文件里注册sapjco3.jar的路径


image.png

再将sapjco3.dll复制到c:/windows/system32


二、测试环境(linux系统)

网上说要把libsapjco3.so放到$JAVA_HOME ,先在linux服务器上echo $JAVA_HOME,

image.png

发现是/data/kingdee8.6/eas/ibm-jdk1.6,于是将libsapjco3.so复制到了/data/kingdee8.6/eas/ibm-jdk1.6/jre/lib/amd64下,并将sapjco3.jar复制到二开补丁包的目录下(lib/sp),重启服务器还是报NoClassDefFoundError,咨询总部大佬,发现eas服务器会在启动时,重置环境变量JAVA_HOME,具体位置在\eas\server\bin\set-server-env.sh里

image.png

于是libsapjco3.so复制到了/data/kingdee8.6/eas/oracle-jdk1.8/jre/lib/amd64下,重启服务器后,调通sap接口!

赞 14