XSL导入导致Web应用程序中的FileNotFoundException

时间:2011-01-17 18:07:42

标签: java xml xslt

我在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(系统找不到指定的文件。   )

2 个答案:

答案 0 :(得分:4)

您需要提供自定义uri-resolver来处理包含。在Web应用程序中,无法保证文件系统是可访问的,因为您可能正在耗尽WAR文件。请查看javax.xml.transform.URIResolver界面和Transformer.setURIResolver()

答案 1 :(得分:3)

取决于您加载 main.xsl 的方式you may need to set the SystemID property,以便它可以解析相对路径。