【问题标题】:XSL import causing FileNotFoundException in web applicationXSL 导入导致 Web 应用程序中的 FileNotFoundException
【发布时间】:2011-06-10 14:52:13
【问题描述】:

我在 websphere5 下有一个简单的 web 应用程序。在appDir\WEB-INF\classes\ 下我有这些文件:

  • main.xslt
  • templates.xslt

main.xslt 包含指令

<xsl:import href="templates.xsl" />

但在 Java 代码中使用 main.xslt 时应用程序会失败。如果它们都在同一个文件夹中(WEB-INF\classes\),我应该如何指定导入的 XSL 文件的路径?

异常文本:

java.io.FileNotFoundException: d:\Program Files\WebSphere\AppServer1\templates.xsl(系统找不到指定的文件。 )

【问题讨论】:

    标签: java xml xslt


    【解决方案1】:

    您需要提供自定义 uri-resolver 来处理包含。在 Web 应用程序中,不能保证文件系统是可访问的,因为您可能会用完 WAR 文件。看看javax.xml.transform.URIResolver接口和Transformer.setURIResolver()

    【讨论】:

    • 正确但一般的答案,缺少解释:xsl:import 声明的相对 uri 将使用样式表 URI 作为基本 URI 来解析。 XSLT 处理器是否可以处理该 URI 方案或者它是否具有正确的权限,这是另一个问题。 From : w3.org/TR/xslt#import xsl:import 元素有一个href 属性,其值是标识要导入的样式表的 URI 引用。相对 URI 是相对于 xsl:import 元素的基本 URI 解析的
    【解决方案2】:

    取决于你如何加载ma​​in.xslyou may need to set the SystemID property,以便解析相对路径。

    【讨论】:

    • 你是救星!
    猜你喜欢
    • 2023-02-02
    • 2017-01-03
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多