2011-03-02 121 views
0

我需要實現Java web服務(在websphere上),該服務又調用N個其他Web服務。我不想讓它阻塞,所以我正在考慮爲它調用的每個WS實現一個線程。是否有任何警告作爲Web服務的線程的父母? (這種解決方案不能使用排隊技術)。Java Web服務和多線程

謝謝

回答

1

這當然是可行的。唯一真正的警告是你必須

1)確保線程所需的所有信息都被傳入。根據所使用的技術,信息通過ThreadLocal綁定到當前線程,所以你需要確保孩子們擁有他們需要的一切。

2)協調響應。可能不是問題,但如果您需要協調答覆,您需要做一些事情。另外,當原始Web服務調用被調用時,您是否可以立即返回響應,還是需要等到其他Web服務被調用?

3)錯誤條件。如果其中一個子Web服務調用失敗,您需要做什麼?這取決於你的要求。

請注意,如果N很小,調用N個webservices調用不應該花太長時間。在通過獲得異步解決方案的痛苦之前,我會同步嘗試它,除非事先確定這不是一個選項。

+1

另一件需要注意的事情是限制線程的數量,所以一個線程池可能比爲每個請求啓動一個新線程要好。 – biziclop 2011-03-02 20:14:28

+0

@biziclop,是的,很好的建議 – hvgotcodes 2011-03-02 20:18:02

+0

感謝您的回覆。關於第2點和第3點,這個想法是,在所有將被調用的WS通用的超時之後,調用WS將採用默認值並返回一個及時的響應。 – xain 2011-03-03 00:52:01