Ich habe eine Tomcat 5.5-Webanwendung, die die Apache Commons-Configuration-Bibliothek verwendet, um eine XML-Konfigurationsdatei zur Laufzeit zu generieren. Die Commons-Konfiguration nutzt dafür die javax.xml.transform
JAXP API. nie xalan.jar gebündelt, anstatt dich auf der Plattform Standard-XSLT-ImplementierungJAXP XSLT-Transformer mit falscher Implementierung standardmäßig
Caused by: javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
In früheren Versionen, ich habe:
Seit 7 Java aktualisieren, schlägt der Vorgang fehl mit folgenden Fehlermeldung.
Einige Dinge, die ich habe überprüft:
- Es gibt keine
META-INF/services/javax.xml.transform.TransformerFactory
Einträge in keinem meiner Anwendung JAR-Dateien, Bibliothek Gläser oder in den Tomcat Gläser - Die
javax.xml.transform.TransformerFactory
Systemeigenschaft nicht gesetzt ist (überprüft bei Laufzeit durch jvisualvm) - Es gibt keine
jaxp.properties
Datei im Verzeichnisjre/lib
Laufen mit -Djaxp.debug=1
erzeugt die folgende Ausgabe:
JAXP: find factoryId =javax.xml.transform.TransformerFactory
JAXP: loaded from fallback value: org.apache.xalan.processor.TransformerFactoryImpl
Woher kommt dieser Fallbackwert? Oracle liefert den Xalan-Transformator, aber seit 1.7 hat es als com.sun.org.apache.xalan.processor...
umgepackt. Sollte nicht der der Fallback-Wert sein?
Haben Sie 'CATALINA_HOME/lib' überprüft? – Brad
Tomcat 5.5 verwendet nicht $ CATALINA_HOME/lib. Afaik, das ist Tomcat 6+. Ich habe '$ CATALINA_HOME/server',' common' und 'shared' vergeblich eingecheckt. – Jonathan
Die Klasse 'org.apache.xalan.processor.TransformerFactoryImpl' könnte aus einem älteren JDK1.4-Setup stammen, also erwarte ich, dass irgendwo auf Ihrer' CLASSPATH' – Brad