2010-04-15 6 views
1

J'ai implémenté une application Web simple qui transforme le code XML en fonction d'une feuille de style XSTL. Cela fonctionne très bien sur tous les serveurs Windows sur lesquels je l'ai déployé (sur Tomcat), mais sur tous les systèmes Linux, j'obtiens une erreur de compilation sur le serveur XSLT. Le mieux c'est que Java 1.6 n'utilise pas le même processeur derrière javax.xml.transform. Sur le système Linux, c'est org.apache.xalan.xslt, version 2.4.Quel est le processeur utilisé par javax.xml.transform?

Ce que je n'arrive pas à comprendre, c'est comment trouver de façon générique ce que n'importe quel système utilise derrière javax.xml.transform. Ou, si quelqu'un a des conseils sur ce que je pourrais faire d'autre pour résoudre le problème, ce serait bien aussi.

Répondre

0

Depuis jdk1.4 Java est livré avec l'implémentation de l'API XML. Ce qui serait utilisé à moins que vous n'approuviez spécifiquement et n'ordonniez à jvm d'utiliser "Xalan" ou toute autre implémentation d'API XML. Je suppose que dans votre système Linux, l'installation de jdk est soit avec Xalan et xml-api jars dans le dossier jre/lib/endorsed ou lorsque vous démarrez votre serveur, vous avez donné l'argument vm -Djava.endorsed.dirs ... au chemin où le pot de Xalan existe. Ou dans votre application Web, vous avez inversé l'ordre de chargement des classes pour regarder d'abord les classes locales et Xalan dans le chemin de votre classe d'application Web.

Vous pouvez remplacer l'implémentation XML donnée par défaut par jre en utilisant l'une des approches et il semble que l'une d'entre elles soit la plus vraisemblable pour votre environnement Linux.

Questions connexes