本文介绍了DOMSource无法处理:检查saxon9-dom.jar是否在类路径上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我运行简单的功能来更新没有jar的dom xml,它运行正常。如果我把代码放在现有的项目中,有很多jar,我得到这个例外

When I run simple function for updating dom xml with no jars, it runs correctly. If I put it code into existing project with many jars, I get this exception

这里

  transformer.transform(source, result);

其中

  TransformerFactory transformerFactory = TransformerFactory.newInstance();
  Transformer transformer = transformerFactory.newTransformer();
  DOMSource source = new DOMSource(docBuilder.parse(filepath));

如何解决这个没有引用依赖这个.jar? Thanx。

how can I solve this without introdicing dependency on this .jar? Thanx.

推荐答案

从API文档我们可以看到有几种方法可以实现这一点。

From API doc for TransformerFactory.html#newInstance(), we can see that there are several ways to achieve this.


  1. 如果您有任何其他变压器实现,例如 xalan

  2. 添加JVM选项: -Djavax.xml.transform.TransformerFactory =<任何变换器类您需要>

  3. 在JRE目录中的属性文件lib / jaxp.properties中指定属性。

  4. 只使用一个文件 META-INF\services\javax.xml.transform.TransformerFactory 制作假JAR,并且此文件仅包含JDK的默认变压器工厂: com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl 。然后将其添加到类路径的开头。

  1. If you have any other transformer implementation, for example, xalan, move its JAR's to the beginning of classpath.
  2. Add a JVM option: -Djavax.xml.transform.TransformerFactory=<any transformer class you need>.
  3. Specify the property in the properties file "lib/jaxp.properties" in the JRE directory.
  4. Make a fake JAR with only one file META-INF\services\javax.xml.transform.TransformerFactory and this file only contains the default transformer factory of JDK: com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl. And then add it to the beginning of the classpath.

这篇关于DOMSource无法处理:检查saxon9-dom.jar是否在类路径上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 08:00