我实现了一个简单的webapp,它基于XSTL样式表转换XML。它在我部署它的所有Windows服务器上都工作得很好(在Tomcat上),但是在所有Linux系统上,我在XSLT上得到一个编译错误。
据我所知,这是因为Java1.6没有在javax.xml.transform后面使用相同的处理器。在一个Linux系统上,它是org.apache.xalan.xslt,2.4版。
我搞不懂的是,如何一般地弄清楚任何给定系统在javax.xml.transform背后使用的是什么。
或者,如果任何人有任何关于我还可以做些什么来解决这个问题的提示,那也是很好的。
发布于 2010-04-16 01:33:36
由于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环境。
https://stackoverflow.com/questions/2647097
复制相似问题