2

私はこのテストコードを持っています:

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1' )
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import groovyx.net.http.HTTPBuilder


ExecutorService executor = Executors.newCachedThreadPool()

(1..10).each {

  executor.execute(new Runnable(){
    void run() {

         def http = new HTTPBuilder('http://www.google.com')
    }

  })
}
executor.shutdown()

ほとんどの場合、ただし常にではありませんが、LinkageErrorが発生します

Exception in thread "pool-1-thread-8" java.lang.LinkageError: loader (instance of  org/codehaus/groovy/tools/RootLoader): attempted  duplicate class definition for name: "org/apache/commons/logging/impl/LogFactoryImpl"

この例ではGrapeを使用していますが、HttbBuilderのjarファイルもクラスパスに直接追加しようとしましたが、同じ問題が発生します。

何らかの方法で解決することは可能ですか?私が言ったように、奇妙な事実はそれが何度も起こるということですが、いつもではありません。

助けてくれてありがとう

4

1 に答える 1

1

この問題については、 https://issues.apache.org/jira/browse/GROOVY-3495を参照してください。そこでの修正が機能する場合、ここで報告されている問題は1.8.2、1.9-beta-3、および1.7.11で修正されています。それらすべてのリリースが行われていますが、現在は1.7.11です。

于 2011-10-05T12:45:18.690 に答える