1

私はGWTアプリで作業しており、Webサービスからファイルを取得してから、RPCを介してURLを返し、UIを表示します。ファイルはdocumentFilesというフォルダに作成/保存されています。

File newFile = new File("documentFiles", doc.getFilename());
newFile.getParentFile().mkdirs();

アプリをGWTdevモードでローカルに実行すると、このフォルダーはwarディレクトリの予想される場所に作成されるため、でアクセスできますhost:8080/[base url]/documentFiles

ただし、Glassfish(Windowsの場合)で実行すると、フォルダーはの下に作成され...\glassfish\domains\domain1\config\documentFilesます。

私はそれが下にあることを望んでいます...\glassfish\domains\domain1\applications\[app name]\documentFiles

これが理にかなっていることを願っています。アプリケーションフォルダの下にファイルを作成するように指定するにはどうすればよいですか?助けに感謝します。ありがとう。

4

1 に答える 1

1

直接のファイル IO を介して Web アプリケーションからファイルにアクセスすることは、一般的には悪い考えであり、設計としても適切ではありません。実行中のインスタンスが 1 つだけファイルにアクセスしていることをどのように確認していますか? おそらく複数の Glassfish インスタンスで実行されている、何百もの同時ユーザーが使用するアプリについて考えてみてください。取引の取り扱いはどうですか?等。

ファイルにアクセスする必要がある場合は、この目的のために特別に作成されたリソース アダプタを使用して、「標準的な」方法でアクセスする必要があります。私が最後にチェックしたとき (約 2 年前) には、Glassfish 用のファイル リソース アダプターがベータ状態でありました。これは使用可能でしたが、あまり信頼性がありませんでした。トランザクション処理部分でいくつか問題があったことを覚えています。今よりもっといい形になっているかもしれません...

ファイル IO を忘れて、別の方法 (データベースや JMS 経由の通信など) で問題を解決する方がよいでしょう。従来の API のためにファイルを使用することを余儀なくされました。そのような制限がない場合は、これを行わないでください。

于 2012-06-15T12:48:50.233 に答える