[英]Multiple jersey-clients with clashing responses from Single tomcat server
我在端口localhost:8080上運行着一台單獨的tomcat服務器。 當我對服務器運行多個線程/請求時,有時對這些請求的響應會發生沖突 。 我的意思是,如果Alice和Bob發送請求,Alice可能會得到屬於Bob的響應,反之亦然。 此外,每隔一段時間,愛麗絲和鮑勃可能都會收到愛麗絲的請求。 請參見下面的示例。 注意:這只會在3%的時間內發生,但是在2000多個請求中,有3%的失敗是很多的。
我的問題是,為什么會發生這種情況?有沒有解決的辦法?
也許我缺少配置中的某些內容。
這是一些更多信息,以便我可以介紹一些基本問題。 我正在使用Jersey api客戶端與服務器(com.sun.jersey.api.client.WebResource)進行通信,該服務器據說是線程安全的(至少就是它所聲稱的)
這不是線程問題。 1)我已驗證每個線程都有其自己的客戶端實例。 2)我同時運行多個進程(所有都是單線程的),並發現了相同的結果。
我在服務器端用一個線程運行它們,沖突仍然發生。
這是我的catalina配置(在server.xml文件中)
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="10" minSpareThreads="0" maxSpareThreads="5"
URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443" />
據我對HTTP的了解,每個請求都會打開(或重用)新端口。 然后,服務器應將請求的確切端口發送給響應。 如果是這種情況,那么就不會發生沖突。
因此,我發現答案確實在於服務器端的XML驗證器。 我發現此討論很有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.