java - javax.xml.transform 使用什么处理器?

标签 java xml xslt transform

我实现了一个简单的 Web 应用程序,它基于 XSTL 样式表转换 XML。它在我部署的所有 Windows 服务器(Tomcat)上运行良好,但在所有 Linux 系统上,我在 XSLT 上遇到编译错误。

据我所知,这是因为 Java 1.6 没有在 javax.xml.transform 后面使用相同的处理器。在一个 Linux 系统上,它是 org.apache.xalan.xslt,版本 2.4。

我不明白的是如何一般地找出任何给定系统在 javax.xml.transform 后面使用的内容。

或者,如果有人对我还可以做什么来解决问题有任何提示,那也很好。

最佳答案

从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 环境。

关于java - javax.xml.transform 使用什么处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647097/

相关文章:

java - 使用jpcap读取数据包头

java - JPA 和业务逻辑 - 在两个地方重用相同的条件

java - FileNotFoundException : class path resource [WEB-INF/dispatcher-servlet. xml] 无法打开,因为它确实存在但不存在

xml - XSLT - 使用 XSLT 1 的 XML 到 CSV 动态模板

xml - 在 xsl 报告中的输出周围添加括号

java - 实现从main到fragment的菜单项

java - Spring 执行器的活跃度和就绪度正在恢复 404

python - (不是这样)子节点到列表的高级 xsl 转换

java - 入站网关中的 HttpMessageConverter 错误处理

android - 某些自定义联系人字段无法在 android v4.0 上使用