2011-08-05 61 views
0

我嘗試了grails中的異步功能。根據http://grails.org/doc/2.0.0.M1/guide/introduction.html#webFeatures,現在可以在grails中使用servlet 3.0異步功能。所以,我想下面的代碼(從文檔複製):grails中的異步功能2.0.0.M1

def index() { 
    def ctx = startAsync() 
    ctx.start { 
     render "hello" 
     ctx.complete() 
    } 
} 

只是爲了看看它是否工作,遺憾的是它不工作:/。 拋出了groovy.lang.MissingMethodException。消息:沒有方法簽名:grailsasync.ProductController.startAsync()適用於參數類型:()values:[]。編譯時,我沒有得到任何錯誤,只有在執行時。

所以我問自己我做錯了什麼?也許有人已經嘗試了Grails新的里程碑,並可以幫助我。

gz Aleks

回答

0

你的代碼看起來不錯。假設你已經確認你在一個支持v3.0 Servlet規範的容器上運行這個,我會在Grails JIRA

+0

中創建一個關於這個問題的問題。是的,我在tomcat 7.0.14上測試了它。一個普通的異步servlet可以正常工作。我想我遵循你的建議並在jira中創建一個問題。 – Aleks

+0

我已閱讀jira.grails中的內容。在那裏他們說我需要將BuildConfig.groovy中的servlet版本更改爲「3.0」:http://jira.grails.org/browse/GRAILS-7848(請看註釋)。他們還說,你可能會遇到另一個問題:http://jira.grails.org/browse/GRAILS-7756。這正是我發生的事情。因此,現在我的結論是:異步功能的許多問題,目前無法實現。 – Aleks

+0

我想你應該期望在使用里程碑時遇到一些錯誤。如果這已經被報告過,如果它在2.0.0 final中沒有被修復,我會感到驚訝。 –