문제

Weblogic 10.3에서 실행되는 웹 앱에서 매우 이상한 수업을 발견하지 못했습니다. 코드에서 우리는 꽤 표준 XSLT 변환을 수행합니다.

UtilRequestManagerBean.java:

TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(new StringReader(xslBuffer.toString())));            
transformer.transform(new StreamSource(new StringReader(sourceBuffer.toString())), new StreamResult(sw));

이것은 우리의 생산 환경 (Solaris 10, 그것이 중요한 경우)에서 실패하고 java.lang.noclassdeffounderror를 생성합니다.

<Mar 11, 2010 1:44:08 PM EET> <Info> <EJB> <BEA-010227> <EJB Exception occurred during invocation from home or business: com.company.basicservice.ejb.util.UtilRequestManagerBean_temuyq_HomeImpl@1737be7 threw exception: java.lang.NoClassDefFoundError: Could not initialize class com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary>

이 수업은 Rt.jar의 일부이며 ClassPath에 있습니다. 이것은 다음 Weblogic Log Snippet에 의해 확인됩니다.

sun.boot.class.path = /opt/jdk1.6.0_12/jre/lib/resources.jar:/opt/jdk1.6.0_12/jre/lib/rt.jar:/opt/jdk1.6.0_12/jre/lib/sunrsasign.jar:/opt/jdk1.6.0_12/jre/lib/jsse.jar:/opt/jdk1.6.0_12/jre/lib/jce.jar:/opt/jdk1.6.0_12/jre/lib/charsets.jar:/opt/jdk1.6.0_12/jre/classes

그리고 마지막으로 Rt.jar의 내용을 나열하면 수업이 있음을 보여줍니다.

jar tvf /opt/jdk1.6.0_12/jre/lib/rt.jar | grep BasisLibrary.class
24787 Sat Jan 17 02:25:58 EET 2009 com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.class

그렇다면 지구상에서 무엇이 문제가 될 수 있습니까?

도움이 되었습니까?

해결책

noclassdeffounderror는 반드시 클래스가 발견되지 않았다는 것을 의미하지는 않습니다. 올바른 버전 클래스의로드되지 않았습니다.

아마도 여러 버전의 클래스가로드 될 가능성이 높습니다. 갈등의 원인이 있는지 확인할 수 있습니까?

이 패키지 org/apache/xalan/internal/xsltc/runtime/basislibrary 또는 BassicLibrary 클래스 자체를 확인하십시오.

또는 rt.jar를 클래스 경로에서 첫 번째 항아리로 넣어 시도하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top