SAP Java Connector (SAP JCo) 是JAVA与SAP相互通信的中间件组建。该组建支持双向通讯模式(inbound calls 和 outbound calls )。
JCo支持Connection Pools和Direct两种方式的连接。直接连接需要开发者来控制连接的创建和释放,使用连接池方式可以让池来管理连接的分配、管理和释放,可以最大限度的节省系统开销,相比直接方式优势也是明显的。本文的示例也是使用池方式连接。
安装JCo
到https://service.sap.com/connectors 下载3.0 或 2.1版本的JCo(需要 SAP Service MarketPlace账号),至于用32bit的还是64bit的要根据你的JVM来选择。
怎么查看自己的JVM版本?
-cmd 用 java -version
32位:Java HotSpot(TM) Client VM ....
64位:Java HotSpot(TM) 64-Bit Server VM ....
-或System.out.println("JVM Bit size: " + System.getProperty("sun.arch.data.model"));
-或System.out.println("JVM Bit size: " + System.getProperty("os.arch"));
1、 ZIP包解压到一个目录(像我,如果只是开发Web App,可以选择不安装的。。直接把sapjco3.dll和sapjco3.jar丢到lib目录中就可以了)
2、在PATH环境变量中指定JCo的安装目录
3、CLASSPASS 指定 安装目录\sapjco3.jar
打开 cmd 到安装目录 执行java -jar sapjco3.jar,安装成功你可以看到如下的信息。
以上部分是摘抄与博客:https://blog.csdn.net/ycb1689/article/details/39341099
***********************************************************************************************************************************************
下面部分是我自己实践配置环境的步骤:可能有点不详细,可以参考上面步骤。
windows 环境设置
1.sapjco3.dll 需要与 sapjco3.jar 在同一目录
2.设置系统环境变量,将sapjco3所在目录加入系统环境变量
3.根据自己的操作系统版本选择对应的sapjco3包
32位系统
例如:
新建环境变量
变量名: JAVA_SAPJCO
变量值: E:\sapjco3\sapjco3-win32
将新建的 JAVA_SAPJCO 环境变量加入 系统环境变量 Path变量集合中.
%JAVA_SAPJCO%\sapjco3.jar
3.项目部署运行
32位系统
将 librfc32.dll 加入到c:/windows/system32/目录 或者 将 librfc32.dll 加入到 JDK/bin 目录下
将 sapjco3.dll 加入到c:/windows/system32/目录 或者 将 sapjco3.dll 加入到 JDK/bin 目录下
64位系统
将 librfc32.dll 加入到c:/windows/SysWOW64/目录 或者 将 librfc32.dll 加入到 JDK/bin 目录下
将 sapjco3.dll 加入到c:/windows/SysWOW64/目录 或者 将 sapjco3.dll 加入到 JDK/bin 目录下
部署异常问题
如果有找不到异常的办法,就拷贝sapjco64的svcp71.dll、msvcr71.dll到c:/windows/system32/目录尝试(原因百度这些dll文件就可以了)
1.问题
异常信息 Can't load IA 64-bit .dll on a AMD 64-bit platform
项目编译及运行,根据自己的操作系统版本选择对应的sapjco3包
2.问题
报错 java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path ,
是因为没有找到 sapjco3.dll这个库的路径,安装了JDK的环境中,这个库默认的位置不是在system32下,而是在 JDK/JRE/BIN下面。
sapjco3 开发环境设置
1.开发中需要将sapjco3.jar加入到项目的build path中
2.或者将其加入 本地 maven 库
mvn install:install-file -DgroupId=org.hibersap -DartifactId=sapjco3 -Dversion=3.0 -Dpackaging=jar -Dfile=E:/sapjco3/sapjco3-win32/sapjco3.jar
用以替换 org.hibersap 加载项下载的文件
***********************************************************************************************************************************************
Linux java 环境设置(没有配置过)
可以参考网上的博客,由于找不到该链接的博客地址。直接给参考内容如下:
1.创建目录
mkdir /usr/java
2.把下载的rpm文件copy过去
cp jdk-8u161-linux-x64.rpm /usr/java/
3.进入目录
mkdir cd /usr/java
4.添加可执行权限
chmod +x jdk-8u161-linux-x64.rpm
5.执行rpm命令安装
rpm -ivh jdk-8u161-linux-x64.rpm
6.查看是否安装成功
java -version
Linux sapjco3 环境设置
1.解压 sapjco3-linux64 或 sapjco3-linuxintel-3.0.5
当前生产环境 centos_X64_32 系统使用的是 sapjco3-linux64
2.将sapjco3.jar 文件复制至 $JAVA_HOME/lib/sapjco3.jar
3.将 libsapjco3.so 文件复制至 $JAVA_HOME/jre/lib/amd64/server/libsapjco3.so
4.设置环境变量
vim /etc/profile 修改文件
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/sapjco3.jar
JRE_HOME=$JAVA_HOME/jre
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server
export JAVA_HOME LD_LIBRARY_PATH PATH
5.刷新配置
source /etc/profile
6.配置本地 hosts 将主机名字映射到IP地址
1.控制台执行 hostname 命令查看计算机名
2.控制台执行 hostname -i 查看本机IP
3.编辑hosts文件 vi /etc/hosts
4.在 /etc/hosts中 加入
192.168.1.10(本机IP) localhost hostname(计算机名)
建立 Jco Serever 监听服务时相关设置
windows jco 监听设置
进入 %SystemRoot%\System32\drivers\etc
1.修改 services文件,在services文件尾部 将 jco.server.gwserv:sapgw00 属性值 sapgw00 加入 SAP 端口映射
sapdp00 3200/tcp #SAP Server
sapgw00 3300/tcp #SAP Gateway
2.修改 hosts文件,在 hosts中 将 jco.server.gwhost:gmdev01 属性值 gmdev01 加入 SAP服务器IP 地址映射
10.86.95.121 gmdev01
3.具体示例
参考项目目录内的 services/hosts 文件
.
linux jco 监听设置
1.执行 vi /etc/hosts
修改 hosts文件,在 hosts中 将 jco.server.gwhost:gmdev01 属性值 gmdev01 加入 SAP服务器IP 地址映射
10.86.95.121 gmdev01
2.执行 vi /etc/services
修改 services文件,在services文件尾部 将 jco.server.gwserv:sapgw00 属性值 sapgw00 加入 SAP 端口映射
sapdp00 3200/tcp #SAP Server
sapgw00 3300/tcp #SAP Gateway
linux 下运行
运行
nohup java -jar test.jar >test.txt &
nohup java -XX:-UseGCOverheadLimit -jar test.jar >SYNC_$(date +%Y%m%d%H%M%S).txt &
查找进程
ps -aux|grep test
结束进程
kill -s 9 "pid"
下载相关jar包和dll文件已经上传到:https://download.csdn.net/download/qq_36026747/10576451