2
:그루비, java.lang.LinkageError의 실행자와 문제 및 HttPBuilder 내가이 테스트 코드가
@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"
를 얻을 나는 포도를 사용하고 있습니다. 그러나 클래스 패스에 직접 HttbBuilder의 항아리를 추가하여 시도했지만 동일한 문제가 발생합니다.
어떤 방식 으로든 해결할 수 있습니까? 나는 이상한 사실이 많이 발생하지만 항상 그런 것은 아니라고 말했다. 도움을
덕분에
일종의 ClassLoader 문제 인 것 같습니다. 스크립트 대신 클래스로 코드를 사용해 보셨습니까? 또한 Groovy의 어떤 버전을 사용하고 있습니까? 항상 버그를 발견했을 수도 있지만 정확한 버전을 모른 채 확인하는 것은 어려울 것입니다. –
@MattPassel 나는 groovy의 메일 링리스트에서 같은 질문을하고 버그가있는 것 같다. 나는 그것을보고했다 [jira link] (http://jira.codehaus.org/browse/GROOVY-4623) – res1