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 (指定されたパスが見つかりません)' FATAL ERROR: 'Could not compile stylesheet'
MyXslt.dtd はワークスペース ディレクトリにあります。だからここにフルパスがあります -
C:\Workspace\src\com\abc\xslt\MyXslt.dtd
残りのパスは正常に解決されていますが、ベース パスはワークスペースではなく、Eclipse が存在する場所から開始されています。
DTD を見つけるにはどうすればよいですか?
編集:
いくつかのポスターは、絶対パスを与えることを提案しています。アプリケーションがさまざまなサーバー (ローカル マシンではない) に展開されるため、これは機能しません。異なるサーバー内で絶対パスを与えることはできませんし、与えるべきではありません
おそらく、参照されたDTDをEclipseルートではなく現在の場所に対して相対的に解決するように強制するJavaカスタムURIリゾルバーの設定など、方法が必要です。何か案は?