2014-11-05 104 views
3

我想了解在什麼情況下async-supported標記需要在web.xml中與澤西異步servlet處理。如果我正在做異步工作,我通常會把它放在那裏。但要說明,我已經安裝了一個簡單的服務隊servlet 3.0異步支持與運動衫

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public void myService(@Suspended AsyncResponse response) { 
    new Thread(new Runnable() { 
     @Override 
     public void run() {    
      response.resume(someResponseObject); 
     } 
    }).start(); 
} 

在這種情況下,如果我不把async-supported我的web.xml中,能正常工作。

這是不是異步工作,因爲我認爲或有一些具體的操作,我需要做之前啓用async-supported是必需的?

回答

0

web.xml中的async-supported選項或等效的servlet註釋@WebServlet(... asyncSupported=true)用於在servlet級別指示執行潛在的長時間運行的後臺工作,應在與正在處理請求。處理請求的線程在此後臺工作中不會被阻止,doGet()或doPost()方法返回並且該線程可用於處理另一個請求。該任務將被放入一個隊列中,並將由應用程序啓動時啓動的線程池中的線程處理。

這實際上與澤西島實施方式處理的Jersey AsyncResponse無關。您的Jersey REST服務不是一個servlet。