簡體   English   中英

約束JAX-WS CXF Web服務請求方法調用每個客戶端IP一個請求

[英]Constraint JAX-WS CXF web service request method invocation to one request per client IP

我有一個基於CXF的Web服務,使用單向方法說:Service.report()

當正在處理來自客戶端的report()時,我想從同一客戶端IP生成另一個傳入報告(),等待第一個請求被處理。 從客戶端看,report()是一個原子操作,應該按順序處理對report()的連續調用。

我怎樣才能最好地實現這種鎖定機制? 我是否需要實現每個客戶端隊列,還是有一種簡單的方法來實現這一目標?

你不需要一個完整的隊列。 一個簡單的對象同步應該工作

static ConcurrentMap syncMap = new ConcurrentHashMap();

public void report()
{
   String clientIp =  ...
   syncMap.putIfAbsent(clientIp, new Object()); // just new Object is good enough to sync on
   synchronized(syncMap.get(clientIp))
   {
      //do synchronized stuff.
   }
}

暫無
暫無

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

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