質問

WebアプリケーションをWebLogicにデプロイしています。私のJavaファイルの1つで、次のように PleaseNote.txt を読み取ろうとしました。

File file = new File("PleaseNote.txt");

現在、WebLogicはドメインディレクトリから PleaseNote.txt を取得しています。私の質問は:

  1. なぜドメインディレクトリなのですか?上記のコード行があるjavaファイルが置かれているディレクトリはなぜですか?

  2. WebLogicがドメインディレクトリを検索するために、知らないが、知らない間に行った設定はありますか?

  3. 本番環境で上記のコード行を使用することの影響/副作用は何ですか?

WeLogicの専門家は応答してください。

ありがとう よろしく チャイタンヤ

役に立ちましたか?

解決

この方法でファイルを読み取ると、アプリケーションの移植性が低下し、堅牢性が低下します。アプリケーションを別のアプリケーションサーバーにデプロイする場合、その PleaseNote.txt を配置する場所を見つける必要があります。再度ファイルしないと、コードが壊れます。

  

これは、 WORA (1回書き込み、どこでも実行)の原則に違反するため、これは悪いことだと思います   練習。

したがって、このファイルをクラスパスに入れて、 ClassLoader#getResourceAsStream(String name) で読み取ります。

他のヒント

ドメインディレクトリです。これは、 user.dir システム変数の値、パスが明示的に設定されていない場合にjavaがファイルを読み書きする場所に対応しているためです。

ドメインディレクトリが user.dir に対応する理由ここでWeblogicサーバーを起動するため。

よろしく アレクサンダー・ロシュコフ

new File(..)を使用する場合、javaは、java.exeが開始されたディレクトリでファイルを探します。 weblogicドメインの場合、これはもちろんドメインディレクトリです。これはデフォルトのjavaの動作です。

ロード元のクラスファイルと同じディレクトリにあるファイルをロードする場合は、ClassLoad.getResourcesAsStream()を使用します。クラスパスからリソースをロードする場合、同じメソッドを使用しますが、ファイルの前に" /"を付けます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top