RFC 调用不适用于 mac os 使用 jco lib 和 java

RFC call does not work on mac os using jco lib and java

SAP RFC 调用在 mac os 平台上不起作用。 windows 上的相同代码 运行。有趣的是,如果我使用 SAP GUI 连接到 sap,我会在 mac 上成功调用 RFC。我使用 sap 官方 jco lib 进行连接。

我的本地 machine 配置:

 SAP Java Connector runtime information

 Java Runtime:
    Operating System    : Mac OS X 10.12.4 for x86_64
    Java VM             : 1.8.0_121 Oracle Corporation
    Default charset     : UTF-8

 Versions:
    JCo API             : 3.0.16 (2016-12-06)
    JCo middleware      : JavaRfc 2.2.19
    JCo library         : 721.800

 Library Paths:
    Path to JCo archive : /Users/**/sapcorejco/lib/sapjco3.jar
    Path to JCo library : /Users/**/lib/darwinintel64/libsapjco3.jnilib

我的错误是

ERROR [hybrisHTTP10] [DefaultSAPRFCDestinationService] com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Initialization of destination SQ2 failed: Connect to SAP gateway failed

详情:

LOCATION    CPIC (TCP/IP) on local host
ERROR       timeout occured

我认为,主要问题与 MAC OS 相关,因为 windows machine 中的相同代码 运行。也许我们缺少一些来自 sap gui 的库?有人遇到过这个问题吗?

来自 JCo 本地低级 CPIC 层的错误 "timeout occurred" 从操作系统的 TCP/IP 堆栈报告。它表示无法访问伙伴主机(指定的 SAP 网关主机)或没有响应。错误发生在 SAP 协议层之下,即在某些 TCP/IP 层上。

如果 SAP 系统通常可以通过其他程序或同一网段的其他主机访问,我建议打开 CPIC 跟踪级别 2 (-Dcpic.trace=2) 并查看它,如果此跟踪可以帮助确定根本原因。例如,初始化 CPIC 库也可能出现问题,因为无法确定 own IP 地址或主机名,或者 own 无法解析主机名。我认为没有域的“ping <ownhostname>”必须工作。据我所知,一个有效的“ping <ownhostname>.local”是不够的。如果这是根本原因,也许将 ownhostname 添加到 etc/hosts 文件会有所帮助。

这里只能猜测,无法从错误消息本身、CPIC 跟踪以及有关您的网络基础结构和配置的知识中获得更多详细信息。不过你肯定不缺图书馆

我终于解决了问题。问题相关的 VPN 应用程序。我用于 vpn Tunnelblick 应用程序。我们使用并排 vpn 和 tunnelblick 默认版本不完全支持。我们更改了 tunnelblick 的版本解决了所有 problems.Tunnelblick 默认版本:2.4.6 但我将 2.3.18 用于并排 vpn。