как получить доступ к коннектору SAP JCo из веб-службы Java? - PullRequest
1 голос
/ 05 июля 2011

У меня есть веб-служба Java в Eclipse для Mac, использующая соединитель JCo для доступа к ряду RFC, но мой код Java не может получить доступ к SAP с ошибкой " (102) JCO_ERROR_COMMUNICATION: подключение к шлюзу SAPfail", но я решил это, добавив ip сервера, к которому вы хотите получить доступ, файл hosts в mac os x.Проблема заключается в том, что при доступе к этой веб-службе на сервере Mac Os X возвращается ошибка " 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 Ответ

1 голос
/ 08 июля 2011

Когда я отредактировал файл hosts с ip сервера для подключения, можно эффективно соединиться с SAP, однако, ошибка была связана с WSDL, а не с тем, что моя веб-служба была экспортирована в WAR-файл, и использовать ее на другом сервере не удалось, поскольку библиотека не смогла найти libsapjco3.jnilib of JCo поэтому дал мне ошибку, что мой хост не смог подключиться.

Затем в разделе Properties-> DeploymentAssembly проекта agrege добавил sapjco3.jar и, внешне для проекта в разделе lib, библиотеку libsapjco3.jnilib, которая работала хорошо.

...