2017-06-08 2 views
0

私はSwithcYard 2.0.0.Beta1を使用しています。アプリケーションサーバーはWildFly 8.1です。私はモジュールからプロパティをロードしたい。 例として、私はモジュール/ wildfly /モジュール/システム/層/ベース/ ORG /研究/設定/テストに 私module.xmlを持ってwildflyモジュールからラクダルートに特性を注入する

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.3" name="org.study.configuration" slot="test"> 
    <resources> 
     <resource-root path="."/> 
    </resources> 
</module> 

これは、プロパティファイルである:

user=foo 
password=bar 
provider=CryptoProvider 
directory=domain;login:[email protected]/dir?password=pwd&preMove=backup&move=processed&moveFailed=error&charset=UTF-8 

この私はwildflyプロファイルにそのモジュールを含める方法です:

<subsystem xmlns="urn:jboss:domain:ee:2.0"> 
     <global-modules> 
      <module name="org.study.configuration" slot="test"/> 
     </global-modules> 

そして今、私は私のラクダのルートでそのプロパティをロードしたい:

を豆

KeyStore ks = KeyStore.getInstance("PKCS12", {{provider}}); 

.to("smb://{{directory}}") 

または それは可能ですか?これを行う方法?

答えて

0

プロパティはファイル内にある限り、最初にロードする必要があります。

モジュールで定義するものは、アプリケーションのクラスパスに過ぎません。

は、JavaのDSLを使用する場合:

Properties myProps = new Properties(); 

Stream is = this.getClass().getClassLoader().getResourceAsStream("MyAppProp.properties"); 
myProps.load(is);  
System.getProperties().putAll(myProps); 

をあなたは春のDSLを使用する場合は、単に通常のばね特性を定義します。

a。 Spring Bean名前空間付き

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
     <value>MyAppProp.properties</value> 
    </property> 
</bean> 

b。

.to("smb://{{directory}}") 

PS:あなたが言ったように春のコンテキスト・ネームスペース

<context:property-placeholder location="MyAppProp.properties"/> 

とその後、キャメルルート内でそれらを使用することができます。 module.xmlに直接プロパティを定義することもできます。

<module xmlns="urn:jboss:module:1.3" name="org.study.configuration" slot="test"> 
    <properties> 
    <property name="directory" value="myTestDirectory"/> 
    </properties> 
    ... 
関連する問題