I've a java web service in Eclipse for Mac usi开发者_开发技巧ng 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.
精彩评论