あらすじ
サーブレットのサーバー側に存在する次の(要約された)コードがあるとします(Tomcatはコンテナーです)。これはGWTアプリケーションですが、関係ないはずです(私は思います)。
ServletContext context = getServletContext();
String dataFilePath= context.getRealPath("/WEB-INF/dir/dataFile.txt");
File dataFile = new File(dataFilePath);
TestCaseGenerator testCaseGenerator = new TestCaseGenerator(dataFile);
testCaseGenerator.generateTestCase();
TestCaseGeneratorプロジェクトのwar/WEB-INF/libフォルダにあるjarのクラスであり、外部ライブラリとしてGWTプロジェクトに追加されています。
問題
testCaseGenerator.generateTestCase()実行されると、dataFileを作成するために使用できなくなりnew LineNumberReader(new FileReader(dataFile));、FileNotFoundExceptionがスローされます。
Stringの値dataFilePathが正しく、読み取る必要のあるサーバー上のファイルへの適切な実際のパスが含まれていることを確認しましたが、そうでdataFileはありませんnull。TestCaseGeneratorまた、このGWTアプリケーションの外部で、コマンドラインから呼び出されたときに正常に実行されることも確認しました。
ファイルの実際のファイルパスを渡したので、渡しTestCaseGeneratorたオブジェクトを使用できない理由がわかりません。Fileこの問題を回避するためのいくつかの代替ソリューションを考え出すことができますが、ファイルが見つからない理由に本当に興味があります。
洞察を事前に感謝します。