如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

注销發表於2018-11-02

當我用CL_HTTP_CLIENT往一個外網的url發請求時,遇到錯誤:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED

錯誤是從這段ABAP程式碼裡丟擲來的:

CALL METHOD lo_http_client->get_last_error
IMPORTING
code    = lv_sysubrc
message = ev_error_message."BREAK-POINT.
WRITE: / 'error: ' , ev_error_message.

如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

只有這一個錯誤,或許您覺得很難找到問題根源。


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

下面是用事務碼SMICM找出問題根源。Goto->Trace Level->Set設定跟蹤級別:


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

設定成最高的3級:


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

然後點Trace File->Reset, 把到目前為止生成的跟蹤檔案清空,這樣再重現HTTP錯誤之後生成的日誌檔案尺寸較小,便於分析:


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

重新執行引起HTTP錯誤的ABAP程式,然後回到事務碼SMICM, 選擇Trace File->Display All:


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

然後把顯示出來的trace檔案儲存到本地,就可以開始分析了。


如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤

檢視日誌檔案,很快就在裡面發現了問題根源,因為Netweaver伺服器上缺少c4c.saphybriscloud.cn對應的SSL證照。

Verification result header:
[Thr 140133716416256] Verification errors
[Thr 140133716416256] The chain of certificates is incomplete or untrusted, missing certificate of
[Thr 140133716416256] CN=DigiCert Global Root CA, OU= www.digicert.com , O=DigiCert Inc, C=US
[Thr 140133716416256] Verified certificate:
[Thr 140133716416256] Subject: CN=*.c4c.saphybriscloud.cn, OU=SAP Cloud Managed Services, O=SAP, L=Walldorf, SP=Baden-Wuerttemberg, C=DE
[Thr 140133716416256] Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US

在瀏覽器裡開啟c4c.saphybriscloud.cn,把certificate匯出,再用事務碼STRUST匯入到Netweaver伺服器即可解決這個問題。Jerry會另外寫一篇文章介紹證照匯入的詳細步驟。

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2218634/,如需轉載,請註明出處,否則將追究法律責任。

相關文章