无法将net.sf.saxon.jaxp.TemplatesImpl强制转换为可序列化

时间:2017-08-30 19:18:21

标签: java saxon xslt-3.0

我有一个问题: 我们能否序列化net.sf.saxon.jaxp.TemplatesImpl对象。 我的问题: 我无法序列化我的net.sf.saxon.jaxp.TemplatesImpl实例, 任何人都可以帮助如何序列化我的对象。 我得到了如下例外:

java.lang.ClassCastException:net.sf.saxon.jaxp.TemplatesImpl无法强制转换为java.io.Serializable

我正在使用以下依赖:

<!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.8.0-4</version>
</dependency>

和 javax.xml api我用来转换。

1 个答案:

答案 0 :(得分:1)

有一次,我们尝试允许您使用Java序列化来创建已编译样式表的持久副本。它根本不起作用。有很多问题。例如。已编译的样式表引用了一些不可序列化的Java类(如RuleBasedCollat​​or)。此外,序列化表单的大小非常大,以至于从源XSLT重新编译通常比反编译已编译的表单更快。导入的模式也是一个问题。我现在忘了所有的问题,但我们最终决定废弃这个设施。

除此之外,Saxon-EE现在能够将已编译的样式表导出为Saxon定义的XML表示(样式表导出文件或SEF),可以在相同或不同的计算机上重新加载。这也是Saxon-JS的基础,它允许导出的样式表在浏览器中执行。