【发布时间】:2017-12-04 09:07:19
【问题描述】:
我在应用服务器wildfly 中使用Xalan 作为XLST-Processor。到目前为止一切正常,但是当我尝试使用 exlst 中的日期和时间函数时,我得到了 NoClassDefFoundError,我不知道为什么。
定义是:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:datetime="http://exslt.org/dates-and-times" version="1.0"">
当我尝试使用年份函数datetime:year 时,我得到了错误。任何想法为什么找不到课程?
谢谢!
【问题讨论】:
-
我可以使用例如
<test processor="{system-property('xsl:vendor')}" function-available="{function-available('datetime:year')}" result="{datetime:year()}"/>可以在 oXygen 19 中使用 Xalan 版本,提供<test xmlns:datetime="http://exslt.org/dates-and-times" result="2017" function-available="true" processor="Apache Software Foundation"/>。不知道 wildfly 使用什么以及它如何配置 Xalan,您的应用程序中的system-property('xsl:vendor')会得到什么?使用任何 EXSLT 函数是否都会出现相同的错误?? -
感谢您的回答。我可以毫无问题地使用 exlst:common。我将尝试变量 xsl:vendor 的值并很快将其写在这里。
-
我仍然得到 NoClassDefFoundError。第一部分给了我:
-
Xalan 有两个 XSLT 处理器,一个解释器和一个编译器,也许编译器 XSLTC 没有如此广泛的 EXSLT 支持,所以如果您使用 Xalan 的本地安装,您总是可以使用 @ 实例化解释器987654326@.
-
非常感谢!然后我必须包括 org.apache.xalan 和相应的序列化程序,但我可以使用日期函数!我的 xsl 中的其他一些东西不再起作用,但我想我也许可以重写它。这确实是编译器的问题。再次非常感谢。如果没有您的帮助,将无法解决此问题。