Domanda

Abbiamo incontrato una strana classe non trovato problema nella nostra web app in esecuzione su Weblogic 10.3.Nel nostro codice di noi uno standard piuttosto trasformazione 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));

Questo non funziona nel nostro ambiente di produzione (Solaris 10, se quello che conta) e produce 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>

Questa classe fa parte di rt.jar ed è sicuramente nel classpath.Questo è confermato dal seguente Weblogic registro 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

E, infine, elencare il contenuto della rt.jar mostra che la classe c'è:

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

Così, ciò che sulla terra potrebbe essere qui il problema?

È stato utile?

Soluzione

NoClassDefFoundError non significa necessariamente la Classe non è stata trovata - significa che il versione corretta la classe non è stata caricata.

Probabilmente più versioni della classe caricato.Potete controllare se c'è una fonte di conflitto esempio alcune classi sono raggruppati in weblogic.jar come bene.

Controllare questo pacchetto org/apache/xalan/interni/xsltc/runtime/BasisLibrary o il BasisLibrary classe stessa - è presente ?

O provare mettendo rt.jar come primo jar nel classpath

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top