Question

Nous avons rencontré une classe très étrange de ne pas problème trouvé dans notre application web fonctionnant sur Weblogic 10.3. Dans notre code, nous faisons une transformation XSLT assez standard.

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));

Cela échoue dans notre environnement de production (Solaris 10, si cela importe) et produit un 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>

Cette classe fait partie de rt.jar et est sans aucun doute dans classpath. Ceci est vérifié par l'extrait de journal de Weblogic suivant:

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

Et la liste enfin le contenu de rt.jar montre que la classe est là:

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

Alors, qu'est-ce pourrait être le problème ici?

Était-ce utile?

La solution

NoClassDefFoundError ne signifie pas nécessairement la classe n'a pas été trouvé. - cela signifie que le version correcte de la classe n'a pas été chargée

plusieurs versions les plus probables de la classe se charger. Pouvez-vous vérifier s'il y a une source de conflit -. Exemple, certaines classes sont regroupées dans weblogic.jar et

Vérifier pour cette org paquet / apache / xalan / interne / XSLTC / exécution / BasisLibrary ou la classe BasisLibrary elle-même - est-il présent

Ou essayez en mettant rt.jar comme le premier pot dans le classpath

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top