Frage

Ich bin mit einem Problem in Jboss geschlagen. Wenn ich versuche, meine .war in den Server zu implementieren, ich diese folgende Fehlermeldung erhalten,

java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.SAXParserF actoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory

, von dem ist es ziemlich offensichtlich, dass es ein Kampf der Bibliotheken ist. Also, ich entfernte die JAR-Datei, die xerces enthält, die zufällig durch jaxp-ri-1.4.1.jar. Nun, wenn ich wieder deploy versuchen, ich diese neue Fehlermeldung erhalten,

java.lang.NullPointerException
    at org.apache.commons.digester.Digester.getXMLReader(Digester.java:944)
    at org.apache.commons.digester.Digester.parse(Digester.java:1765)
    at org.apache.struts.action.ActionServlet.initServlet(ActionServlet.java

Dabei gilt es beschwert sich, dass es nicht die XML-Parser finden.

So, nun meine Fragen sind, dass jeder weiß, was eine Lösung sein kann. Jede jaxp jar-Datei, die enthält nicht das xerces Paket?

Aktualisieren

Ich tat, wie vorgeschlagen, hier und jetzt habe ich einen neuen Fehler,

java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl

, das ist eine Klasse von einem des Glas Ich löschte die enthält SaxParserFactory: (

War es hilfreich?

Lösung

Es scheint, dass Sie die falsche JAR gelöscht haben. Die ursprüngliche Classcast berichtet wurde, wenn eine Instanz von SAXParserFactoryImpl (das ist ein Subtyp von SAXParserFactory ist) wird gegossen, um SAXParserFactory zu sein.

Die Ausnahme ist eher auf die Tatsache zurückzuführen sein, dass es zwei Instanzen von SAXParserFactory anstatt zwei Instanzen von SAXParserFactoryImpl in der JVM geladen werden. Zum Zeitpunkt des Gießens, die geladen SAXParserFactory durch ein anderes Klassenladeprogramm zurückgegeben wurde Ausnahme zur Folge hat. Das Update ist daher JAR-Dateien in Ihrem Classpath, die haben widersprüchlichen Versionen von SAXParserFactory zu identifizieren. Das Entfernen der Parser Implementierung selbst vielleicht nicht klug sein, wenn Commons Digester ist für eine bestimmte Implementierung suchen.

Andere Tipps

Ich vermute, ... Sie verwenden JBoss 5.1. Wenn ja, dann ist es XML-Parser und Classloading Problem. Sie müssen definieren jboss-classloading.xml

Siehe http://www.coderanch.com/t/523519/JBoss/Cast und http: // www. mastertheboss.com/jboss-application-ser...oss-5-classloading-issues.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top