为了账号安全,请及时绑定邮箱和手机立即绑定

SAXON - XPST0017:找不到名为的匹配 1 参数函数

SAXON - XPST0017:找不到名为的匹配 1 参数函数

HUH函数 2021-08-04 17:56:15
我有一个简单的 jar 测试程序,用于用 xquery 文件解析 xml。问题是在 xquery 文件中我声明了一个 java 命名空间:declare namespace java="java:MyString";然后为了测试目的,我只有一个静态方法 toString(Object o)。当我在 Eclipse 之外执行它时(当我手动设置类文件夹时,他正确管理了类路径)我收到标题中的错误:> C:\>java -jar XQueryJava.jar> -xq XQuery\test.xq -xml XQuery\test.xml Error on line 9 of XQuery\test.xml:   XPST0017: Cannot find a matching 1-argument> function named {java:MyString}toString() ; SystemID: XQuery\test.xml;> Line#: 9; Column#: -1 net.sf.saxon.trans.StaticError: Cannot find a> matching 1-argument function named {java:MyString}toString()>         at net.sf.saxon.query.UnboundFunctionLibrary.bindUnboundFunctionCalls(UnboundFunctionLibrary.java:114)>         at net.sf.saxon.query.StaticQueryContext.bindUnboundFunctionCalls(StaticQueryContext.java:1479)>         at net.sf.saxon.query.QueryParser.makeXQueryExpression(QueryParser.java:106)>         at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:472)>         at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:502)>         at xpath.AffichageXPath.execute(AffichageXPath.java:91)>         at xpath.AffichageXPath.main(AffichageXPath.java:49)我尝试使用“-cp”和将 .class 文件放入的文件夹:java --class-path XQuery\class -jar XQueryJava.jar -xq XQuery\test.xq -xml XQuery\test.xml但还是同样的问题。如果我将类文件放在与 jar 相同的文件夹中,一切都很好。为什么它不适用于 CP 参数?我以为这是重点...任何的想法 ?
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

首先堆栈跟踪显示您正在调用处理器

net.sf.saxon.query.StaticQueryContext.compileQuery

这是一个相当低级的切入点,在这个级别上有很多方法可以让事情出错。我建议您使用 s9api 接口 ( XQueryCompiler.compile())。

您很容易出错的一件事是在没有启用 Saxon-PE/EE 的情况下运行。对自反扩展功能的调用至少需要 Saxon-PE,它还需要存在许可证文件。检查 Saxon 配置是 ProfessionalConfiguration 还是 EnterpriseConfiguration。

使用命令行上的 -TJ 选项或 API ( FeatureKeys.TRACE_EXTERNAL_FUNCTIONS) 中的等效配置属性将为您提供更好的诊断,以了解为什么找不到该函数。

最后,请注意-jar在 Java 命令行上使用意味着忽略类路径:所有内容都必须从 JAR 文件本身加载。这使得获取许可证文件和任何外部库类变得非常困难,因此最好避免。


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 306 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信