最近、Eclipse を使用して Java で Web プロジェクトを作成しました。タイマー タスクを含むサーブレットがあります。このタイマー タスクは、私が作成した XML ライティング クラスの「writeList」メソッドを呼び出します。これはすべて正常に動作し、System.out を使用して毎分実行されることを確認しました。
Eclipse 内から XML ライティング クラスをアプリケーションとして実行すると、正常に動作します。ファイルは問題なく「WebContent/test.rdf」に出力されます。
ただし、サーブレットのタイマー タスクによって呼び出されると、次のエラーが発生します。
java.io.FileNotFoundException: WebContent/Test.rdf(No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at com.XMLWriter.writeList(XMLWriter.java:58)
at com.ServerTimer$1.run(ServerTimer.java:30)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
XMLWriter の 58 行目のコードは次のとおりです。
fileOut = new FileOutputStream("WebContent/TEST.rdf");
model.write(fileOut);
fileOut は FileOutputStream で、model は Jena モデルのインスタンスです。RDF を使用しているためです。
何か助けていただければ幸いです。私はこれで何日も立ち往生しています! ご不明な点がございましたら、お知らせください。
編集:現在は機能していますが、ファイルを Web プロジェクトの「WebContent」ディレクトリに書き込みたいと考えています。これを自動的に行う方法はありますか?システムにそのディレクトリを動的に見つけさせることができません。