0

私のアプリケーションでは、WebContent/META-INF フォルダーにある XML ファイル (ABC.xml など) を読み込んでおり、以下のように DOM パーサーを使用して解析しています。

File xmlFile = new File("WebContent//META-INF//ABC.xml");
parser.parse(new InputSource(new FileReader(xmlFile.getAbsolutePath())));

表示中のファイルが見つからないという例外があり、xmlFile.getAbsolutePath() を出力すると、その表示

D:\Softwares\SDE_7\eclipse\WebContent\META-INF\ABC.xml

これは私の日食セットアップがある場所です

そこで、単純なJavaプログラムで同じロジックを使用して、正しいパス(プロジェクトフォルダー構造)を示す絶対パスを出力しようとしましたが、プログラムは正常に動作します

D:\GME_WorkSpace\Practice_1\WebContent\META-INF\sample.xml

この対立はなぜですか?どうすれば修正できますか?

4

2 に答える 2

1

WebContentについて話している場合は、サーブレットを作成したように聞こえます。

その場合、ファイルを見つけるためにServletContextを使用する必要があります。

getServletContext()。getRealPath(...)は、サーブレット内の相対ファイル名の完全なOSパスを取得します。

getServletContext()は、HttpServletから継承する任意のクラスから呼び出すことができます。

于 2013-03-15T12:21:01.080 に答える
0
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("WebContent//META-INF//ABC.xml");
File file = new File(url.toURI());
于 2013-03-15T11:21:08.800 に答える