2013-06-27 4 views
-1

java1.6,grails 2.0을 사용하고 있습니다. 난 내가링거 오류 : 로더 제약 조건 위반 : "org/w3c/dom/Type Info"라는 이름의 다른 유형에 대해 이전에로드가 시작되었습니다.

Class java.lang.ClassNotFoundException 
Message org.apache.xmlbeans.XmlOptions 

나도 xmlbeans-2.5.0.jar or xbean-2.1.0.jar.

내가 오류

아래 얻고 항아리를 추가하는 것을 시도하고 오류가 아래에있어 this.document = new XWPFDocument(buffInputStream); 항아리 poi-ooxml-3.5-FINAL.jar,ooxml-schemas-1.1.jar. 을 추가하지만, 코드 라인 한이 documents.For DOCX을 처리 할
| Error Fatal error during compilation 
    org.apache.tools.ant.BuildException: java .lang.LinkageError: loader 
    constraint violation: loader (instance of bootloader) 
previously initiated loading for a different type with name "org/w3c/dom/Type Info" (Use --stacktrace to see the full trace) 

내 Jre 시스템 라이브러리를 확인하면 rt.jar에이 TypeInfo 클래스가 포함됩니다. 어떻게 이 문제를 해결하려면? 제발 조언. 고맙습니다.

안녕하세요, 라이브러리를 제거하려고 시도했으며이 클래스를 검색하기 위해 jarscan을 사용했습니다. 그러나 나는 어디에도 못 찾았습니다. 어떻게하면이 클래스가 어디에 있는지 그리고 어떻게 해결할 수 있는지 알아내는 데 도움이됩니다.

+0

안녕하세요, 질문에 문제가 있습니까? 왜 내가 어떤 반응을 얻지 못하는 걸까요? 이 문제에 대해 계속하는 방법을 강타 했으니 나를 도와주세요. 감사합니다 – vishnu

+0

아래에 내 대답을 올렸습니다. 받아 들일 수 있습니까? –

답변

1

이것은 JMX MBeanServer 클래스에서 나에게 일어난 일입니다. Groovy는 클래스 로더 중 하나를로드 중이었고 JVM도로드 중이었습니다. TypeInfo 클래스가 rt.jar에있는 것처럼 들리지만 다른 클래스 로더가 해당 jar (또는 다른 jar)에서 다시로드하는 것처럼 들리는 경우가 있습니다. "-verbose : class"를 사용하여 JRE를 실행하면 이중로드 동작이 나타납니다. 그런 다음 클래스 패스에서 문제가되는 jar 파일을 옮겼습니다. Groovy가로드 한 jar 파일과 잘 맞았습니다.

rt.jar을 클래스 경로 밖으로 옮기거나 rt.jar 내부에 다른 클래스가 필요한 경우에는 Type 클래스없이 unjaring 및 rejaring을 시도하는 것이 좋습니다. 그렇게하면 클래스 로더는 xmlbeans-2.5.0.jar 또는 xbean-2.1.0.jar에있는 클래스를 사용하게됩니다.