2016-09-01 3 views
0

いくつかの設定でconfig.propertiesを読み込む必要があります。 私は、それをやり遂げる方法は何でも自由です。config.propertiesの読み方j2ee

私はwarファイルの外に置いて、簡単に変更でき、再構築を必要としません。

私はどこでも検索しましたが、それを行う方法が見つからないため、これはJava 101ですが、それは理解できません。

私はクラスローダーを試しましたが、それは戦争の中からリソースをロードするだけのようですが、そこから読み込むために私のサーバーに戦争をロードした場所を取得する方法を見つけることができません。 また、コード内のどこでもアクセスできるsoapエンドポイントとして、コマンドラインパラメータ経由で引数を渡す方法が見つかりませんか?

私はこれを見ましたWhere to place and how to read configuration resource files in servlet based application? と私はファイルシステムのアプローチを使用したいが、私は設定ファイルのハードコーディングされたパスが欲しくない。

私は何かをシンプルで簡単にしたい、私は何かがあることを知っているが、私はそれを見つけることができません。

+0

プロジェクト外のクラスパスを重複していると示唆されているとして何が問題になっていますか? – BalusC

+0

@BalusCそれは働かない。私はWindowsに自分のコンピュータ環境のPATHを追加しましたが、それをロードしません。 weblogicのjavaのクラスパスにフォルダを追加する方法がわからないのですか? – f1wade

答えて

0

これはあなたの質問に役立ちます。 だと思います。一方法のABCDで

public static String abcd(String one) { 
    properties = new Properties(); 
      properties.load(<classNmae>.class.getClassLoader().getResourceAsStream("AppResources.properties")); 
return properties.getProperty(one); 

コールこのコード

String fileLocation = abcd("internal property file"); 

      Properties properties = new Properties(); 
     FileInputStream fis = new FileInputStream(fileLocation); 
     properties.load(fis); 
     fis.close(); 

     acd = (String)properties.get("acd"); 

注 AppResources.properties外部ファイル位置Dを有する:/aaa.propertiesは、外部のプロパティを読み出す第2の方法では、次に ファイルファイル

+0

は動作しますが、外部プロパティファイルの場所を効果的にハードコードにして、再コンパイルしてWARを変更して変更する必要があります。 – f1wade

0

簡単に変更でき、再構築を必要としないように、warファイルの外にあります。

は、あなたがそれをする方法ではないかもしれないが、ただこれに答えるために、私たちは私たちのウェブアプリケーションが場所/apps/servers/webserver-1/apps/servers/webserver-2にあるWebサーバに配備されている同様のシナリオがあります。そして、我々は/apps/my-web-app1/app.properties/apps/my-web-app2/app.propertiesのようないくつかの他の場所にプロパティを配置しています。

ここで、プロパティを更新する必要がある場合は、相対プロパティで編集を行い、Webサーバーを再起動することをお勧めします。これの欠点は、Webサーバースタートアップスクリプトのシステム引数としてこれらのプロパティファイルのパスを渡す必要があることです(私の場合、これらはcatalina.shファイルです、はい、私はtomcatsを使用しています)。

だから私のcatalina.shは、ラインがどこかにこれらのプロパティを読み取るには

export JAVA_ARGS `-Dpath.to.properties.of.my-web-app2=/apps/my-web-app2/app.properties` .... 

のようなものを中心に横たわって、私は、各アプリケーションのStartupServletsによって呼び出されるプロパティのユーティリティ機能を持っていました。この関数の目的は、システムプロパティpath.to.properties.of.my-web-app2を読み込んでこのファイルを単純に開くことです。これらのプロパティは、アプリケーション全体で簡単にアクセスできる場所(キャッシュの場合はHashMap)に配置します。

+0

thatsは私が欲しいもののように聞こえるが、私はまだそれを動作させる方法は不明で、javaでどのようなコードを使うのだろうか? weblogic/netbeansに追加のフォルダを表示するように設定する方法はありますか? – f1wade

関連する問題