29550


Wildfly上で動作するJavaEEアプリケーションに対して、アプリケーションの外部から任意の設定情報を渡したいです。  
例えばweb.xmlだと、warファイルのbuildが必要になってしまうので、NGです。  
Wildflyの再起動程度で反映できるような仕組みを探しています。

Wildflyの管理画面から、Configuration→System
Propertiesで、何やら自由に設定できそうな画面が開くのですが、これが使えたりするのでしょうか？


CC BY-SA 3.0
2016-10-13T13:20:38.927
29531
2016-10-14T05:03:02.063
8078
question
java java-ee
JavaEEアプリケーションに対して外部から設定情報を渡したい


用途として適切かどうか分かりませんが、System Propertiesの値は`System.getProperty()`で取得できることがわかりました。


CC BY-SA 3.0
2016-10-13T13:33:45.340
29532
2016-10-13T13:33:45.340
8078
29531
answer


System Propertiesは用途として適切です。

WildFlyに限らずJava EEアプリケーションであれば、他にはJNDIを使うこともできます。  
値の取得を間接化することができます。

[code]

    Context initialContext = new InitialContext();
    String valu = (String) initialContext.lookup("java:comp/hoge/fuga");
    
[/code]

WildFlyのJNDI設定方法はこちらです。  
<https://docs.jboss.org/author/display/WFLY8/JNDI+Reference>  
完全に外部化するならRemoteの方となります。

JNDI自体についてはこちらが参考になります。  
今さら人に訊けない JNDI: 第 1 回 「JNDI ってなんだっけ？」  
<http://www.ibm.com/developerworks/jp/websphere/library/was/was_jndi/1.html>

OSの環境変数に設定して、`System.getenv()`で取得することもできます。


CC BY-SA 3.0
2016-10-14T05:03:02.063
29550
2016-10-14T05:03:02.063
4464
29531
answer