如何从Java Web服务访问SAP JCo连接器?

时间:2011-07-04 22:52:31

标签: java macos sap jco

我在Eclipse for Mac中使用JCo连接器访问大量RFC的java Web服务,但是我的java代码无法访问出错“(102)JCO_ERROR_COMMUNICATION:连接到SAP网关的SAP失败“,但我通过添加你想要访问的服务器的ip,mac os x的文件主机来解决它。问题是,当您在Mac OS X服务器上访问此Web服务时,返回错误“ hostname.private ”,我无法访问SAP。

JCo例外:

com.sap.conn.jco.JCoException: 
(102) JCO_ERROR_COMMUNICATION: Connect to SAP gateway failed
Connection parameters: TYPE=A DEST=ABAP_AS ASHOST=192.168.90.5 SYSNR=04 SAPROUTER=/H/192.220.35.89/S/3299 PCS=1

LOCATION    CPIC (TCP/IP) on local host
ERROR       hostname 'servermac.private' unknown
TIME        Mon Jul  4 13:18:36 2011
RELEASE     720
COMPONENT   NI (network interface)
VERSION     40
RC          -2
MODULE      nixxhl.cpp
LINE        183
DETAIL      NiHLGetNodeAddr: hostname cached as unknown
COUNTER     4 here

网络服务错误:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <soapenv:Fault>
     <faultcode>soapenv:Server.userException</faultcode>
     <faultstring>java.lang.reflect.InvocationTargetException</faultstring>
     <detail>
        <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">servermac.private</ns1:hostname>
     </detail>
  </soapenv:Fault>

1 个答案:

答案 0 :(得分:1)

当我用ip连接服务器编辑hosts文件时,可以有效连接 SAP,但错误在于WSDL上的错误,而不是具体,而是我的Web服务已导出到WAR并在另一台服务器上使用它无法连接,因为该库无法找到JCo的libsapjco3.jnilib因此给了我主机无法连接的错误。

然后在项目的属性 - &gt;部署组件中,agrege添加了sapjco3.jar,并在lib部分的外部项目中,libsapjco3.jnilib库,运行良好。