あらすじ
サーブレットのサーバー側に存在する次の(要約された)コードがあるとします(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
この問題を回避するためのいくつかの代替ソリューションを考え出すことができますが、ファイルが見つからない理由に本当に興味があります。
洞察を事前に感謝します。