2013-08-01 14 views
2

我已將'org.codehaus.gpars:gpars:1.0.0'更新爲'org.codehaus.gpars:gpars:1.1.0'。我的代碼在1.0.0中工作正常,但在版本1.1.0中我找不到jsr166y.ForkJoinPool了。使用現有池存儲池錯誤jsr166y.ForkJoinPool找不到

如何獲得正確的ForkJoinPool?

我使用的代碼是:

import groovyx.gpars.GParsPool 
import jsr166y.ForkJoinPool 

class Test { 
    def pool = new ForkJoinPool() 

    def executeAsync(args, closure = null) { 
    if(!closure) { 
     closure = args 
     args = null 
    } 

    GParsPool.withExistingPool(pool) { 
     closure.callAsync(args) 
    } 
    } 
} 

我不得不進口java.util.concurrent.ForkJoinPool得到ForkJoinPool類。但在運行時我得到以下錯誤:

| Error 2013-08-01 13:26:45,807 [http-nio-8080-exec-4] ERROR 
errors.GrailsExceptionResolver - ClassNotFoundException occurred when processing 
request: [POST] /testpackage/test/saveAll - parameters: 
jsr166y.ForkJoinPool. Stacktrace follows: 
Message: jsr166y.ForkJoinPool 
Line | Method 
->> 175 | findClass     in org.codehaus.groovy.tools.RootLoader 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 423 | loadClass     in java.lang.ClassLoader 
| 147 | loadClass . . . . . . . . in org.codehaus.groovy.tools.RootLoader 
| 356 | loadClass     in java.lang.ClassLoader 
| 2451 | privateGetDeclaredMethods in java.lang.Class 
| 1810 | getDeclaredMethods  in  '' 
|  46 | getLocked . . . . . . . . in org.codehaus.groovy.util.LazyReference 
|  33 | get      in  '' 
| 318 | saveAll . . . . . . . . . in testpackage.UploadImageController 
| 195 | doFilter     in 
grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter . . . . . . . . in grails.plugin.cache.web.filter.AbstractFilter 
| 1145 | runWorker     in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run      in java.lang.Thread 
| Compiling 1 source files. 
+0

如果我只是在groovyConsole(v2.1.6)中運行它,它可以正常工作... –

+0

但是:jsr166y.ForkJoinPool在1.1.0中不可用做什麼? – confile

+0

這是'org.codehaus.gpars:gpars:1.1.0'的依賴關係......我剛剛創建了一個新的grails項目,在'dependencies'中添加了'build'org.codehaus.gpars:gpars:1.1.0'' 'BuildConfig.groovy'的一部分,並嘗試了上面的代碼,它似乎適用於我: - /您使用的是什麼版本的grails? –

回答

4

更新您的BuildConfog.groovy爲:

compile 'org.codehaus.gpars:gpars:1.1.0' 
compile 'org.codehaus.jsr166-mirror:jsr166y:1.7.0' 

這應該爲你工作。