简体   繁体   中英

how to access the SAP JCo connector from a Java Web Service?

I've a java web service in Eclipse for Mac using the JCo connector to access a number of RFCs, but my java code could not access SAP that had the error " (102) JCO_ERROR_COMMUNICATION: Connect to SAP gateway failed ", But I solved it by adding the ip of the server you want access, the file hosts of mac os x. The problem is that when you access this web service is on a Mac Os X server, returns the error " hostname.private " and I can't access to SAP.

JCo Exception:

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

Web service error:

<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>

When I edited the hosts file with ip of server to connect, can effectively connect with SAP, however the mistake was having on the WSDL that was not specifically, but rather that my Web Service has been exported to a WAR and use it on a different server could not connect because the library could not find the libsapjco3.jnilib of the JCo therefore gave me the error that my host could not connect.

Then in the section Properties->DeploymentAssembly of the project agrege added sapjco3.jar and externally to project in the lib section, the library libsapjco3.jnilib, which worked well.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM