簡體   English   中英

在Glassfish v3上運行的J2EE應用未響應HTTP請求。 應用記錄成功,但沒有數據通過HTTP發送回

[英]J2EE app running on Glassfish v3 is not responding to HTTP requests. App logs success but no data sent back over HTTP

我正在支持其他供應商的遺留應用程序。

這是在Glassfish v3.1.2.2上運行的J2EE應用程序。 它具有使用JAX-RS實現的REST API。 我對應用程序和源的了解有限。

症狀是:

  • 向REST API發出HTTP請求
  • 應用程序具有自己的審核系統,這表明請求成功
  • GF日志中沒有錯誤
  • GF訪問日志記錄了請求
  • 0字節從請求返回給調用者

對於遠程調用以及在localhost上使用curl進行的調用均會發生這種情況。

如果我們通過HTTPS向其他端口發出相同的請求,則它們將成功。 我們不願意在不知道根本原因的情況下將呼叫移至另一個端口。 這些昨晚斷斷續續地失敗了,而今天卻不斷失敗。

請求的數據包捕獲顯示:-TCP開銷/握手-GET請求-從應用程序返回到調用者的單個ACK-之后沒有任何響應

什么會導致Glassfish v3成功處理和處理HTTP請求,但不返回任何數據?

Glassfish v3中是否存在刷新或重置HTTP偵聽器及其關聯線程池的機制?

由於這是在向本地主機的同一服務器上的curl請求上發生的,因此我認為可以排除網絡問題。

使用的端口直接與Glassfish通信。 調用方和應用服務器之間沒有代理(如Apache或Nginx)。

我應該在Glassfish中啟用日志記錄或監視設置,以觀察HTTP偵聽器相對於應用程序和網絡堆棧的作用嗎?

我混淆了一些顯示症狀的示例:

Glassfish訪問日志:

"0:0:0:0:0:0:0:1" "NULL-AUTH-USER" "25/Oct/2018:11:21:02 -0500" "GET /api/obfuscated/by/me HTTP/1.1" 200 9002 

對該調用的卷曲響應:

*   Trying OFBBFUSCATED
* Connected to hostname.local (OFBBFUSCATED) port 11080 (#0)
> GET /api/obfuscated/by/me HTTP/1.1
> Host: hostname.local:11080
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Basic asdfdsfsdfdsfsdafsdafsdafw==
>
* Empty reply from server
* Connection #0 to host hostname.local left intact

更新我更改了HTTP網絡偵聽器的超時設置。 我將其從30秒提高到了35秒,因為我看到一個數據包捕獲,其中該應用在30秒后發送了FIN。 進行更改后,它又開始工作。

目前尚不清楚這是否以某種方式沖洗或重置了某些東西,或者我是否處於某種競賽狀態。

明顯的根本原因是運行這些服務的系統上的I / O高。 這些應用程序通常使用50MB /秒的速度,一個新的過程將其使用速度提高到250MB /秒。 解決I / O問題后,所有HTTP錯誤都會消失,並且不會再出現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM