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.
如果我只是在groovyConsole(v2.1.6)中運行它,它可以正常工作... –
但是:jsr166y.ForkJoinPool在1.1.0中不可用做什麼? – confile
這是'org.codehaus.gpars:gpars:1.1.0'的依賴關係......我剛剛創建了一個新的grails項目,在'dependencies'中添加了'build'org.codehaus.gpars:gpars:1.1.0'' 'BuildConfig.groovy'的一部分,並嘗試了上面的代碼,它似乎適用於我: - /您使用的是什麼版本的grails? –