1

我正在使用 Grails 1.4.0.M1,并且正在尝试升级 gpars 的版本以与我的应用程序一起使用。

所以我在 BuildConfig.groovy 中添加了:

dependencies{
    build 'org.codehaus.gpars:gpars:0.11'
}

但是,当我使用 run-app 时,这给我带来了以下异常:

Exception in thread "Thread-4" java.lang.ClassCastException: groovyx.gpars.ThreadLocalPools cannot be cast to groovy.lang.GroovyObject
  at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:47)
  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
  at groovyx.gpars.Parallelizer.retrieveCurrentPool(Parallelizer.groovy:62)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

我怀疑它可能在旧版本中使用此库链接到 grails 框架,并且版本不兼容。

知道如何克服这个问题吗?

谢谢。

4

1 回答 1

6

没错,Grails 使用的是旧版本的 GPars (v0.9),但使用的方式非常有限。不幸的是,它以一种难以删除或替换的方式添加到引导类路径中,因此我使用常规线程管理代码重新编写了该代码并删除了依赖项。

如果你升级到 2.0.0.M1,依赖就消失了,你可以使用你喜欢的任何版本的 GPar。

于 2011-08-14T15:25:32.160 回答