私はこのテストコードを持っています:
@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ファイルもクラスパスに直接追加しようとしましたが、同じ問題が発生します。
何らかの方法で解決することは可能ですか?私が言ったように、奇妙な事実はそれが何度も起こるということですが、いつもではありません。
助けてくれてありがとう