我有一个使用 XSLT 转换(Java 6)的 web 应用程序。XSL 文件 (basic.xsl) 引用 DOCTYPE DTD,如下所示:
基本的.xsl
<!DOCTYPE stylesheet SYSTEM "MyXslt.dtd">
当我使用集成测试点击使用此逻辑的控制器端点时,它运行良好。但是当 Fiddler 命中同一个端点时,我得到一个错误:
错误:'C:\tools\eclipse\src\com\abc\xslt\MyXslt.dtd(系统找不到指定的路径)'致命错误:'无法编译样式表'
MyXslt.dtd 位于工作区目录中。所以这是完整的路径 -
C:\Workspace\src\com\abc\xslt\MyXslt.dtd
路径的其余部分得到了很好的解决,但基本路径是从 eclipse 所在的位置开始的,而不是从工作区开始。
我必须做什么才能找到 DTD?
编辑:
一些海报建议给出绝对路径。那是行不通的,因为应用程序将部署在各种服务器(不是我的本地机器)上。我不能也不应该给出不同服务器中的绝对路径
必须有一种方法,可能是 java 自定义 URI 解析器中的某些设置,它强制引用的 DTD 相对于当前位置而不是相对于 Eclipse 根进行解析。有任何想法吗?