0
我從代碼中打了兩次web服務。第一次命中給我一個product_ID,使用它作爲路徑參數,我進行第二次get調用,這給了我響應。在EJB中使用@Timeout而不是Thread.sleep()
問題是第二次(GET)調用應該在第一次(POST)調用後2秒後被觸發。我在我的項目中使用EJB,最簡單的解決方案是使用Thread.sleep(2000)。但是EJB並不建議程序員自己管理線程。
在我的研究中,我找到了一個可能的解決方案,但由於缺乏EJB技能,我無法理解它。有人可以指導我解決這個問題。
的URL可能的解決方案是:Using the EJB3 timer service instead of Thread.sleep()
不@Timeout作品完全一樣的Thread.sleep,即它使當前線程進入睡眠或它使過程異步。因爲我正在運行我的項目,並且第二個web服務在2秒後正在運行。但是在webservice運行之前應該執行的方法。 – Anant666
@Timeout在後臺工作,並在定時器完成後使用'timerService.createSingleActionTimer'創建,如果您在此EJB類中創建其他計時器,則它們也會觸發@Timeout方法。 (也許你想使用第二個調用的響應在第一個方法中使用?當然這是定時器不可能的) – Redlab
如果你想以相同的方法響應你的第一個調用,你必須按照這樣的東西http://stackoverflow.com/questions/9100987/is-there-something-that-behaves-like-wait-and-notify-in-ejb-environment – Redlab