這篇文章主要講解了“SAP ABAP里存在Java List集合工具類嗎”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SAP ABAP里存在Java List集合工具類嗎”吧!
創(chuàng)新互聯(lián)專注于東鄉(xiāng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供東鄉(xiāng)營銷型網(wǎng)站建設(shè),東鄉(xiāng)網(wǎng)站制作、東鄉(xiāng)網(wǎng)頁設(shè)計、東鄉(xiāng)網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造東鄉(xiāng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供東鄉(xiāng)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。在開發(fā)過程中發(fā)現(xiàn)該API工作不太穩(wěn)定,同樣的輸入,時不時會返回HTTP 400 Bad Request:Encountered an error (InternalServerError) from host runtime
這個錯誤并不是總能重現(xiàn)。
通過排查,最后我們確認(rèn)這個問題和我們調(diào)用API的代碼無關(guān),于是給Azure報了一個bug:
在分析定位問題時,不由得讓我懷念起以前在ABAP On-Premise上做開發(fā)的一個便利之處——大多數(shù)問題都可以通過在ABAP應(yīng)用服務(wù)器端調(diào)試來找到根源。
本文記錄了2016年時,SAP成都研究院CRM開發(fā)團(tuán)隊在開發(fā)SAP CRM Fiori應(yīng)用時的一些技術(shù)討論,關(guān)于HTTP請求的響應(yīng)狀態(tài)碼的差異。
當(dāng)時我們用Chrome打開SAP Fiori應(yīng)用,在Chrome開發(fā)者工具的network標(biāo)簽里,觀察到有的請求響應(yīng)碼為HTTP 200,有的卻是HTTP 304.
HTTP 200和HTTP 304理論上的差異解析,網(wǎng)上一搜一大把:
https://ions/1665082/what-is-the-difference-between-http-status-code-200-cache-vs-status-code-304
本文我們從一個實(shí)際的例子出發(fā),觀察ABAP服務(wù)器分別是在何種情況下,返回HTTP 200和304這兩個狀態(tài)碼的,幫助大家加深理解。
分幾種情況進(jìn)行討論。
第一種情況:HTTP 200 OK
第二種情況:HTTP 304 Not Modified
第三種情況:HTTP 200(from Cache)
首先進(jìn)行第一輪測試。
將這種來自SAP UI5標(biāo)準(zhǔn)庫文件的url粘貼到瀏覽器里訪問:
https://:7080/sap/bc/ui5_ui5/ui2/ushell/resources/~20160308134900~/sap/fiori/core-min-0.js
得到HTTP 200狀態(tài)碼:
大家想過沒有,上圖高亮的HTTP響應(yīng)頭部字段,比如last-modified, 是在ABAP服務(wù)器上哪段代碼里被填充的?
靈活運(yùn)用Jerry 文章 SAP錯誤消息調(diào)試之七種武器:讓所有的錯誤消息都能被定位 介紹的辦法,順利通過調(diào)試的方式,找到準(zhǔn)確的位置如下:
上述代碼的邏輯:
(1) 第九行,服務(wù)器試圖從HTTP請求的頭部字段中,提取名為If-Modified-Since的字段值,因?yàn)檫@是我第一次請求該JavaScript文件,而這個字段的值邏輯上應(yīng)該等于第一次請求到達(dá)服務(wù)器后,從服務(wù)器返回的響應(yīng)結(jié)構(gòu)里名為last-modified字段的值。
在我的第一輪測試?yán)铮驗(yàn)槭堑谝淮握埱笤撐募琀TTP請求頭部沒有包含If-Modified-Since字段,所以服務(wù)器解析出的值為空,即變量lv_modified_since為空。
(2) 在我使用的ABAP服務(wù)器上,JavaScript文件core-min-0.js最后修改的時間戳為20160316205045. 因此,兩個變量lv_change_time_char和lv_change_time_string都被附上了這個值。
下面第20行代碼展示了前文HTTP 200狀態(tài)碼的截圖里,HTTP響應(yīng)字段cache-control被填充的地方。
之前Chrome瀏覽器里打開的url:
https://:7080/sap/bc/ui5_ui5/ui2/ushell/resources/~20160308134900~/sap/fiori/core-min-0.js
不用關(guān)閉這個瀏覽器窗口,直接按F5刷新,這次收到的響應(yīng)碼不再是HTTP 200 OK,而是HTTP 304 Not Modified.
為什么會產(chǎn)生這種差異呢?按F5之后仔細(xì)觀察請求頭部,發(fā)現(xiàn)第二次請求,瀏覽器發(fā)出的HTTP請求里,If-Modified-Since字段包含的就是第一個請求里從服務(wù)器端返回的last-modified字段值。
按F5刷新的這個請求到了服務(wù)器端,這一次ABAP服務(wù)器成功解析出請求字段If-Modified-Since的值:
將客戶端發(fā)送過來的這個If-Modified-Since時間戳,同服務(wù)器端該文件最后修改的時間戳進(jìn)行比較(即下圖第26行AND后的第二個判斷條件),發(fā)現(xiàn)二者相等,因此在第28行返回HTTP 304 Not Modified.
關(guān)掉Chrome,再打開,再訪問同一url,此時Chrome直接從自身的cache里返回該JavaScript文件,而不是向ABAP服務(wù)器上發(fā)起請求。因此服務(wù)器上所有ABAP斷點(diǎn)均不會觸發(fā)。
再回到Jerry遇到的那個Azure上執(zhí)行function創(chuàng)建API遇到的HTTP 400 Bad request的incident,至本文發(fā)稿時為止還是未能得到解決。
盡管Azure的Function Host運(yùn)行時也是開源的,但不能調(diào)試,我拿著這些海量代碼也沒轍,目前Github上看到的就有多達(dá)967個開著的 issue.
感謝各位的閱讀,以上就是“SAP ABAP里存在Java List集合工具類嗎”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對SAP ABAP里存在Java List集合工具類嗎這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
分享名稱:SAPABAP里存在JavaList集合工具類嗎-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://vcdvsql.cn/article44/dsopee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)頁設(shè)計公司、響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容