2009-08-07 42 views
16

JBossで以前にWeblogic 10.3.1.0にデプロイしていたJ2EEアプリケーションのデプロイに取り組んでいます。私は外部のプロパティファイルに関する問題にぶつかっています。 Jbossでは、プロパティファイルを$ JBOSS_HOME/server/default/confに置くだけで、システムのクラスパスにロードされ、問題なくアクセスできます。 $ MIDDLEWAREHOME/user_projects/domains/mydomain/libに共有ライブラリを置くことができました。システムクラスパスに問題なくロードされましたが、プロパティファイルを読み込めません。weblogicの外部プロパティファイルの使用

外部のプロパティファイルをWeblogicに含める方法を知っている人はいますか?それは少し余分な努力であるかもしれないが、あなたがそのlibディレクトリにそれらを削除する前にJARにファイルを置く場合は、それが動作するはず

+0

は疑問です概念賢明なこの質問とほとんど同じです。 anwserは、ドメインパス/クラスパスを取得する方法を示します。 http://stackoverflow.com/questions/41352916/not-able-to-load-external-properties-files-with-springboot-in-weblogic/41364735#41364735 –

答えて

14

私はこれを考え出し、予想通りに動作させました。まず、上記のような提案を試しました。クラスパスにフォルダを追加したり、プロパティファイルをクラスパス上のフォルダに配置したりすると、ファイル内のjarファイルは取得されますが、プロパティファイルは取得されませんでした。プロパティファイルをjarファイルに入れてクラスパス上のフォルダに置くと、すべてがうまくいきました。しかし、私は変更が行われるたびにファイルをjarファイルにしたくなかった。私のenvで次のように動作します。

プロパティファイルを%WEBLOGIC_HOME%/ user_projects/domains/MYDOMAINに配置すると、jarファイルに配置することなくプロパティファイルを取得できます。

のWebLogic瓶で
0

おかげで、。

+0

私はそれを行い、私は新しく作成されたjarファイル私のプロパティファイルを含む)をクラスパス上で定義されたlibフォルダに格納します。これはうまくいきましたが、変更が必要なときにこれらの設定ファイルをjar/unjarする必要はありません。これは、私の耳のファイルにプロパティファイルをどこかに入れるよりも、ほんの数ステップだけです。現時点では機能しているので、より良い解決策を探していきます。 – broschb

1

ドメインファイルのsetDomainEnv.cmd(Windows)またはsetDomainEnv.sh(Unix/Linux)スクリプトを見て、ドメインのCLASSPATHに追加されている場所を確認できます。次に、プロパティファイルの特定の場所でスクリプトを編集する場合は、フォルダを1つ選択してプロパティファイルを配置します。

+0

私はこれを行いました。クラスパスに追加されたフォルダにファイルを保存しましたが、プロパティファイルは取得されません。しかし、それは私が同じディレクトリに置くjarファイルをピックアップしています。私はなぜプロパティファイルがピックアップされていないのか分かりません。 – broschb

2

はLIBからロードされ、非jarファイルは、ドメインフォルダ

+0

この動作をどこかで有効にする必要はありますか? Windows XPでWebLogic 12c開発インストールを実行しましたが、ドメインディレクトリからlogback.xmlを取得していません。 –

1

からロードされますプロパティを読み取るための方法がありますのWebLogicクラスパスからJavaでファイル

ワン(プロパティファイルがありますweblogicドメインで):Domainディレクトリ内のプロパティファイルを削除します。こうすることで、プロパティファイルがweblogicクラスパスに自動的に追加され、resourceAsStreamを使用してJavaから読み込むことができます。

2つ(ユーザー定義の場所からのプロパティファイル):この方法の利点は、プロパティファイルがJARファイルまたはEARファイルの外に存在することができ、便利に変更できることです。我々はJAVA_OPTIONS

セットJAVA_OPTIONS =%JAVA_OPTIONS%-DpropFileLocation =は/ dev /ファイル/へ-D引数としてプロパティファイルの場所を通過する必要がある(ビン下)は、WebLogicのsetDomainEnvで

package com.test; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Properties; 

public class PropertyFileExample { 

private static Properties prop; 

public static void myMethod() { 

InputStream is = null; 

try { 

prop = new Properties(); 

String propFilePath = System.getProperty(“propFileLocation“); 

InputStream iStream =  PropertyFileExample.class.getClassLoader().getResourceAsStream(propFilePath); 

//Note that the propFilePath is a -Dparam defined below in the setDomainEnv 
prop.load(iStream); 
prop.getProperty(“dbuser”); 

} catch (FileNotFoundException e) { 

e.printStackTrace(); 

} catch (IOException e) { 

e.printStackTrace(); 

} 

} 
} 

プロパティ/ some.properties

これは役に立ちます。

+1

答えのコード例のような詳細情報を追加してください。 –

+0

コードと詳細な説明がリンクにあります。代わりにここに掲示されるべきであることを意味しましたか? –

+0

はい、リンクがいつか壊れる可能性があります。 –

0

クラスパスにディレクトリを設定し、カスタムプロパティファイルをそのフォルダ/ディレクトリに配置できます。そのため、ディレクトリ全体がプロパティファイルと共にクラスパス上にあります。 %DOMAIN_HOME%\config\フォルダにフォルダを作成したWebLogic 10.3.xの

  • にクラスパス上のディレクトリを設定するには 。例appConfig
  • ディレクトリ/フォルダappConfigにカスタムプロパティファイル(例:config.properties)を配置します。
  • 次のように変数(この変数がすでにsetDomainEnv.cmdファイルで定義されている)EXT_POST_CLASSPATHに値として%DOMAIN_HOME%\config\appConfigを設定することにより、クラスパスにappConfigを含めることsetDomainEnv.cmd(Windows)を変更します。

    set EXT_POST_CLASSPATH=%EXT_POST_CLASSPATH%;%DOMAIN_HOME%\config\appConfig 
    

することができますそのファイルにあなたのjavaコードで以下のようにアクセスしてください:

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream ("config.properties"); 
    Properties prop = new Properties(); 
    prop.load(inputStream); 
    String value = prop.getProperty("key"); 

希望します。

0

を上書きします:

以下
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 

     InputStream is = null; 

     String urlExte = System.getenv("DOMAIN_HOME")+"/properties/SmsBalanceadoWS/"; 


     org.springframework.core.io.Resource resource = ctx.getResource("file:"+urlExte+"/application.properties"); 
     try { 
      is = resource.getInputStream(); 
     } catch (IOException e) { 
      LOGGER.debug("ERROR"+ e.getMessage()); 
     } 
+0

説明を追加してください。 https://stackoverflow.com/help/how-to-answerを参照してください。 – user7294900

関連する問題