微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Saxonica EE Xslt 转换处理无限循环

如何解决Saxonica EE Xslt 转换处理无限循环

我在 java 应用程序中使用 saxonica EE(试用版)进行 xslt 转换,在使用 XSLT 转换有效负载时需要帮助处理无限循环。是否有任何我们可以为转换配置的超时,以便如果它进入无限循环,我们可以超时请求并且它不应该关闭应用程序?

我读到无限循环不会导致 saxonica 解析器中的堆栈溢出,因此超时是停止转换并抛出错误的更好选择。

解决方法

与其他编程语言一样,限制程序使用的资源是执行框架的问题,而不是语言处理器本身的问题。例如,您可以在这里找到一些想法:https://www.baeldung.com/java-stop-execution-after-certain-time

这里:How to properly stop the Thread in Java?

但是,如果线程处于紧密的 CPU 循环中,则中断线程可能会出现问题。

在 XSLT 中构建无限循环实际上相当困难,它需要一些独创性。但是编写需要很长时间有限时间的代码是很容易的,它只需要三四个嵌套的 xsl:for-each 语句和一个大的源文档。

我认为,实际的答案是不要让未经测试的代码在生产环境中运行。始终先在 IDE 中对其进行测试。例如,这就是为什么可以禁用 xsl:evaluate 的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。