فشل نقل XSLT لأن Weblogic لا يمكن العثور على فئة موجودة في RT.JAR

StackOverflow https://stackoverflow.com/questions/2424681

سؤال

لقد صادفنا فئة غريبة للغاية لم يتم العثور على مشكلة في تطبيق الويب الخاص بنا يعمل على 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.noclassdeffoundrror:

<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 التالي:

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

لذلك، ماذا على الأرض يمكن أن تكون هي المشكلة هنا؟

هل كانت مفيدة؟

المحلول

لا يعني noclassdeffoundror بالضرورة أن الفئة لم يتم العثور عليها - وهذا يعني الإصدار الصحيح من الفصل لم يتم تحميله.

على الأرجح إصدارات متعددة من الفصل الحصول على تحميل. يمكنك التحقق مما إذا كان هناك مصدر صراع - مثال يتم تجميع بعض الفصول في Weblogic.jar أيضا.

تحقق من وجود هذه الحزمة ORG / Apache / Xalan / Xsltc / XSLTC / Runtime / BrackLibrary أو FactLibrary Class نفسه - هل هو موجود؟

أو حاول عن طريق وضع RT.JAR كجار الأول في ClassPath

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top