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

使用 apache camel transformer EIP 将模块导入 xquery

使用 apache camel transformer EIP 将模块导入 xquery

慕容708150 2023-01-05 10:08:45
我正在使用 Java 开发一个简单的代码算法,我想知道在计算时间复杂度? :之间可能存在差异。if-else我认为它们都具有相同的时间复杂度,但我不确定......例如:if (number == num) {    count += 1;}else {    count -= 1;}和count += (number == num) ? 1 : -1;如果你能告诉我它们之间的区别,真的谢谢你:-)我有一个非常简单的骆驼路线,除了使用的 xquery,这就是为什么我将它提取到一个单独的文件中。在我的骆驼路线中,我使用 Transformer EIP 调用 xquery:.transform().xquery("resource:classpath:xquery/myCoolXQuery.xquery",String.class)XQuery 本身工作正常,但由于一些功能更改,我现在想导入另一个 XQuery 模块,我想将其用作具有一些帮助功能的“库”,因为我有很多可以使用它们的 XQuery 文件。所以我在 XQuery 中所做的是:xquery version "3.0" encoding "UTF-8";declare namespace fn = 'http://www.w3.org/2005/xpath-functions';(: Library of really helpful functions :)import module namespace lib = "http://handofnod.com/xquery-lib" at "classpath:xquery/lib.xquery";题:如何配置StandardModuleURIResolver能够从类路径加载导入模块的 Apache Camel ?到目前为止的调查/问题NullpointerException不幸的是,apache camel 现在在以下位置抛出一个StandardModuleURIResolver:if ("classpath".equals(absoluteURI.getScheme())) {    String path = absoluteURI.getPath();    is = this.config.getDynamicLoader().getResourceAsStream(path);那是因为absoluteURI(是"classpath:xquery/lib.xquery")无法正确转换并且变量path是NULL(这几乎是代码味道,但现在不是我的事)。absoluteURI无法转换,因为中net.sf.saxon.query.XQueryParser没有设置值this.env.getStaticBaseURI()。所以我在调试期间尝试将staticBaseURI值设置为,classpath但随后StandardModuleURIResolver也返回一个absoluteURI具有NULL值的值,getPath()从而导致相同的NullPointerException.所以现在我不知道如何将Transformer-EIP与 XQuery 一起使用,XQuery 使用模块导入来实现某些辅助函数。另一种可能的解决方案另一种可能的解决方案是不使用 Apache Camel 中实现的 Transformer-EIP,而是使用 ,ToDefinition因为可以通过 URL 参数定义自定义Saxon 配置,该参数可以使用覆盖ModuleURIResolver,这样就没有问题了。另外,我当然可以使用自定义Processor实现来实现我想要的,但这不是使用为 EIP 提供实现的 Camel 的重点。如果我可以在我的 XQuery 中使用带有模块导入的Transformer-EIP ,那就太好了。项目设置是:弹簧引导 2.1.0.RELEASE阿帕奇骆驼 2.22.2使用 Maven 构建最后一个问题谁能帮我吗?
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

由于我的问题似乎没有答案,因此我进行了越来越深入的调试,实际上似乎不可能以任何方式使用 XQuery 配置 Transformer-EIP。此外,我无法找到任何方法从类路径加载导入的 xquery 模块,所以我更改了代码,现在我通过 XQueryEndpoint 调用我的 xquery,它提供对自定义配置的支持:

.to("xquery:/xquery/myCoolXQuery.xquery?configuration=#saxonConfig&resultsFormat=String")

这样我的路线就可以了。但是如果能够使用 就好了,transform()因为代码会更容易理解。


查看完整回答
反对 回复 2023-01-05
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

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