簡體   English   中英

Servlet doPost中的同步塊

[英]Synchronized block in Servlet doPost

我需要了解在Servlet代碼的doPost方法內部引入同步塊對性能的影響。

我正在嘗試做以下事情:

  1. 請求(XML)命中了我的servlet。

  2. 使用JAXB解組xml

  3. 我做一些基本的邏輯檢查,創建響應

  4. 元帥回應並將其發送出去。

在請求的解組期間,JAXB有時沒有給出特別針對日期相關字段的正確結果。 我瀏覽過博客,這似乎與jaxb編組/解組有關。

我的問題是:

如果我介紹了我的servlet的以下代碼位iside doPost方法:

synchronized (Unmarshaller.class)  {

    SoapEnvelope soap = (SoapEnvelope) MyHelper.getContext().createUnmarshaller().unmarshal(new StringReader(reqXMl));

    req = soap.getBody().getRequest();

} 

會不會影響性能? 即如果假設有50個並行請求? 是否會等待49個請求,直到1個請求被解組,否則所有請求都會繼續下去而沒有任何效果?

這不是一個好主意,因為默認情況下只有給定servlet的一個實例。

如果您具有符合JaveEE的服務器,則可以創建將處理JAX-B反序列化的無狀態EJB bean。 只需將創建的bean注入servlet並使用它即可。

如前所述,無狀態會話bean被合並,它應該像一個魅力一樣工作!

暫無
暫無

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

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