Java ile SAP RFC çağırma kodu kullanımı örneği ve hatalar (SAP Calling RFC with Java code usage example and errors)

SAP Portal kullanmadan ABAP fonksiyonlarına RFC yolu ile ulaşmak için kullanacağınız yöntem için yani SAP ile SAP bağlantısı yöntemi ve SAP ile SAP-ABAP bağlantısı kurma sırasında karşınıza çıkabilecek hatalar ve çözümlerini aşağıda bulabilirsiniz.

Bu hatayı aşmak için uygulamanız içerisindeki kullandığınız sapjco sajjco3_IDE com.sap.security_2.0.0.110406113455 dosyalarınızı doğru verisyonlar ile değiştirmelisiniz.

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/EAgreement] threw exception [JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc. Found version "2.1.10 (2011-05-10)" but required version "2.1.9 (2010-01-28)".] with root cause
java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc. Found version "2.1.10 (2011-05-10)" but required version "2.1.9 (2010-01-28)".
	at com.sap.mw.jco.JCO.<clinit>(JCO.java:820)
	at net.yazilimcity.eagreement.persistence.impl.JConnectionFactory.getJcoClient(JConnectionFactory.java:83)
	at net.yazilimcity.eagreement.persistence.impl.AgreementDAO.verifyFiBaBs(AgreementDAO.java:496)

Java kütüphane yolu için gerekli olan dll,jar dosyalarını bulamamasından dolayı aşağıdaki hata ile karşılaşırsınız. Bu hatayı aşmak için Environment Variables da System Variables Path içerisine dll,jar dosyalarının bulunduğu dizinini, örneğin “D:\JavaJco” gibi tanımlanmalıdır.

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/EAgreement] threw exception [JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\Java\jdk1.8.0_65\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;;.]] with root cause
java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\Java\jdk1.8.0_65\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;;.]
	at com.sap.mw.jco.JCO.<clinit>(JCO.java:871)
	at net.yazilimcity.eagreement.persistence.impl.JConnectionFactory.getJcoClient(JConnectionFactory.java:83)
	at net.yazilimcity.eagreement.persistence.impl.AgreementDAO.verifyFiBaBs(AgreementDAO.java:496)

Bağlatı ile ilgili ile aşağıdaki gibi bir hata alabilirsiniz. Bunu aşmak için uygulamanızın bulunduğu makineden bağlantı yapmaya çalıştığınız makineye ağ üzerinden erişim sorunu var demektir. Port kapalı olabilir, vs. gibi çözüm yolları için ağ çalışanı ile iletişime geçmelisiniz.

2017-05-18 15:38:15 ERROR net.yazilimcity.eagreement.persistence.impl.JConnectionFactory:101 - getJcoClient Problem while connecting to SAP.SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
Connect_PM  GWHOST=10.10.15.20, GWSERV=sapgw00, SYSNR=00

LOCATION    CPIC (TCP/IP) on local host
ERROR       partner not reached (host 10.10.15.20, service 3300)
TIME        Thu May 18 15:38:15 201
RELEASE     640
COMPONENT   NI (network interface)
VERSION     37
RC          -10
MODULE      nixxi_r.cpp
LINE        8840
DETAIL      NiPConnect2
SYSTEM CALL SiPeekPendConn
ERRNO       10060
ERRNO TEXT  WSAETIMEDOUT: Connection timed out
COUNTER     1
::com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
Connect_PM  GWHOST=10.10.15.20, GWSERV=sapgw00, SYSNR=00

LOCATION    CPIC (TCP/IP) on local host
ERROR       partner not reached (host 10.10.15.20, service 3300)
TIME        Thu May 18 15:38:15 201
RELEASE     640
COMPONENT   NI (network interface)
VERSION     37
RC          -10
MODULE      nixxi_r.cpp
LINE        8840
DETAIL      NiPConnect2
SYSTEM CALL SiPeekPendConn
ERRNO       10060
ERRNO TEXT  WSAETIMEDOUT: Connection timed out
COUNTER     1

JCo ile bağlantı oluşturma sırasında aşağıdaki gibi hata alabilirsiniz. Bu hatanın çözümü olarak JCO.createClient(client, user, password, language, host, sysNumber) işleminde gönderdiğiniz parametrelerin doğrulundan emin olmalısınız, bütün parametreleri doğru değer ile gönderemiyorsunuzdur.

Missing R3NAME=... or ASHOST=... in connect_param in RfcOpenEx::com.sap.mw.jco.JCO$Exception: (101) RFC_ERROR_PROGRAM: Missing R3NAME=... or ASHOST=... in connect_param in RfcOpenEx
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*