java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl pendant le démarrage du weblogic
Dans le cadre de notre application, nous utilisons apache xerces jaxp de l'analyseur. Lorsque nous déployer l'application sur weblogic 9.2, nous obtenons l'erreur suivante.
org.springframework.les haricots.usine.BeanCreationException: Erreur lors de la création de haricots avec le nom " org.apache.cxf.wsdl.WSDLManager " défini dans le chemin de classe de ressource [META-INF/cxf/cxf.xml]: l'Instanciation de haricot échoué; nested exception est org.springframework.les haricots.BeanInstantiationException: impossible d'instancier la classe d'haricot [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructeur a jeté exception; nested exception java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
Selon notre analyse, weblogic est d'essayer de charger son propre DocumentBuilderFactoryImpl
qui est présent dans weblogic.jar au lieu de apache xerces.
Nous avons essayé suivantes pour forcer la weblogic pour charger DocumentBuilderFactoryImpl
de xerces
i), nous avons ajouté la balise suivante dans weblogic.xml
<prefer-web-inf-classes>true</prefer-web-inf-classes>
ii), nous avons mis dernières versions de xalan dans jre/lib/sponsorisé dossier. cela ne résout pas notre problème.
ii) nous avons ajouté des entrées dans weblogic-application.xml
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>UTF-8</param-value>
</application-param>
<prefer-application-packages>
<package-name>javax.jws.*</package-name>
<package-name>org.apache.xerces.*</package-name>
<package-name>org.apache.xerces.jaxp.*</package-name>
</prefer-application-packages>
</weblogic-application>
ii)Ajouté à la suite de l'entrée en weblogic-application.xml
<xml>
<parser-factory>
<saxparser-factory>org.apache.xerces.jaxp.SAXParserFactoryImpl</saxparser-factory>
<document-builder-factory>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</document-builder-factory>
<transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory>
</parser-factory>
</xml>
iii) Ajouté à la jaxp.properties
pour charger DocumentBuilderFactoryImpl
de xerces pour le jre/lib et de démarrer le serveur.Dans ce cas, weblogic, na pas démarrer.
iv) Puis nous avons commencé le premier serveur et puis copié le jaxp.properties
fichier pendant le temps d'exécution lorsque le serveur démarre.Mais pas de succès
Aucun des ci-dessus a travaillé pour nous.
Toute aide est très appréciée.
OriginalL'auteur venkat | 2010-03-15
Vous devez vous connecter pour publier un commentaire.
Vous n'avez donc beaucoup de choses que je ne comprends pas la situation exacte. Mon conseil serait de suivre strictement les Le Serveur D'Application Spécifique Guide De Configuration pour WebLogic que j'ai utilisé avec succès dans le passé avec WLS 9.2.
Vous aurez certainement ajouter plus de paquets sous
prefer-application-packages
pour l'installation de Weblogic Chargeur de classe de filtrage mais dans l'état actuel de la question, il est impossible de fournir une réponse précise.Juste au cas où, vous pouvez peut-être essayer aveuglément utiliser le
weblogic-application.xml
de ce fil:Mais c'est un coup de feu dans l'obscurité.
OriginalL'auteur Pascal Thivent
Vous pouvez essayer de forcer l'utilisation du document spécifié constructeur de l'usine comme une option de ligne de commande:
C'est en supposant que vous avez la Xerces constructeur de l'usine de classe dans votre classpath.
En général, vous ne devez pas utiliser une xerces.jar de plus, sauf si requis par un code existant. Le parseur Xerces les classes viennent avec le JRE, les paquets dont le nom commence par com.soleil.org.apache au lieu de org.apache. Vous pouvez également essayer d'
et supprimer xerces.jar à partir de votre classpath tout à fait (c'est ce que nous avons fait sur WLS 10.3 et Java 1.6).
OriginalL'auteur MarkoU
J'ai réussi à résoudre le problème DocumentBuilderFactory pas trouvé avec la solution la plus simple.
Essayez de copier xercesImpl.jar pour le domaine spécifique de la lib sur weblogic MyDomain\serveurs\Monserveur\lib.
OriginalL'auteur ernesto
Dans mon cas, le problème est que j'ai fait une dépendance sur communes-digesteur qui à son tour utilisé une autre version de xerces (à l'origine du conflit). De sorte que vous pouvez passer en revue vos dépendances dans le cas où une autre version de xerces était transitivement inclus.
OriginalL'auteur Taras