簡體   English   中英

來自單個tomcat服務器的響應相互沖突的多個澤西客戶端

[英]Multiple jersey-clients with clashing responses from Single tomcat server

我在端口localhost:8080上運行着一台單獨的tomcat服務器。 當我對服務器運行多個線程/請求時,有時對這些請求的響應會發生沖突 我的意思是,如果Alice和Bob發送請求,Alice可能會得到屬於Bob的響應,反之亦然。 此外,每隔一段時間,愛麗絲和鮑勃可能都會收到愛麗絲的請求。 請參見下面的示例。 注意:這只會在3%的時間內發生,但是在2000多個請求中,有3%的失敗是很多的。

  1. 愛麗絲-> sendRequest1
  2. 鮑勃-> sendRequest2
  3. 愛麗絲-> receiveResponse2
  4. 鮑勃-> receiveResponse1

我的問題是,為什么會發生這種情況?有沒有解決的辦法?

也許我缺少配置中的某些內容。


這是一些更多信息,以便我可以介紹一些基本問題。 我正在使用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驗證器。 我發現此討論很有幫助。

哪個xml驗證程序將最適合多線程項目

暫無
暫無

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

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