我已经实现了一个基于XSTL样式表转换XML的简单webapp。它可以在我部署的所有Windows服务器上运行(对Tomcat),但在所有Linux系统上,我在XSLT上都遇到编译错误。
我可以说,这是因为Java 1.6没有使用javax.xml.transform后面的相同处理器。在一个Linux系统上,它是org.apache.xalan.xslt,版本2.4。
我无法弄清楚的是如何一般地弄清楚任何给定系统在javax.xml.transform后面使用的内容。
或者,如果有人有任何提示我可以做些什么来解决问题,那也很好。
答案 0 :(得分:0)
由于jdk1.4 Java本身带有XML API实现。除非您特别认可并指示jvm使用“Xalan”或任何其他XML API实现,否则将使用哪个。
我的猜测是,在你的linux系统中,你的jdk安装要么在jre / lib / endorsed文件夹中有Xalan和xml-api jar,要么你启动服务器时给出了vm参数-Djava.endorsed.dirs。 ..到Xalan jar存在的路径。或者在您的Web应用程序中,您翻转了类加载的顺序,首先查看本地类,Xalan在您的Web应用程序类路径中。
你可以使用其中一种方法覆盖jre默认给出的XML实现,看起来很可能其中一种方法适用于你的linux环境。