2017-05-10 18 views
0

プラットフォーム固有のパスを避けるために、camelファイルコンポーネントに動的パスを設定しようとしています。しかし、カラムはディレクトリパスに$を期待していないので、これを許可していません。私がやろうとしています何Apache Camelファイルコンポーネントと動的パス

はfile.homeを言うし、その後

ファイルのように私のファイルコンポーネントにこれを使用したVMのparamを設定することです:\ $ {file.home} \ TYPE1

これにより、プラットフォーム固有のパスを直接削除することができます。 これをプロパティファイルに外部化しようとしましたが、Springはキャメル固有の動的言語を理解できません。 $ {in.header.abc}

これを達成するために誰かが私を助けることができますか?ここで

答えて

0

あなただけtoエンドポイント(特定のコンポーネントを使用して)でダイナミックURIを使用することができます。 fromとして使用することはできません。そこ

あなたはどのように(キャメル2.16から)toDを使用する方法の説明やrecipientListを見つけることができます:How to use dynamic URI in to

しかし、私は言ったように - toでそれを使用する唯一の可能性があります。 fromで使用することはできません。回避策として、使用する予定の各ロケーションのルートを作成する必要があります。またautoCreate=falseオプションなしであるため、例えば、Linuxのパスのために、自動的に他のディレクトリを作成しないようにautoCreate=falseオプションを使用することができます。/home/user/testc:\home\user\test

0

キャメル2.16以来

我々は

.from("file://folder") 
.toD("file://folder/${file:onlyname}") 
0
使用することができますWindowsのディレクトリ構造を作成します。

これらの回答は正しくありません。 BridgePropertyPlaceholderConfigurerとPropertiesComponentを使用する場合は、どこでも動的値を使用できます。

<bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"> 
    <property name="properties"> 
     <value> 
...normal property syntax name=value - use this in test definitions 
     </value> 
    </property> 
</bean> 

または実際のアプリケーションでこのようなものを使用

<bean id="dummyPropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:/dummy.properties" /> 
</bean> 

例えば

<route id="DummyRoute"> 
     <from uri="file:{{dummy.int.dir}}?delay={{poll.delay}}&amp;initialDelay={{initial.delay}}&amp;{{readlockChanged}}&amp;move={{root}}/{{dummy.arch.dir}}/{{archive.dir}}&amp;moveFailed={{error.dir}}&amp;scheduledExecutorService=#scheduledExecutorService" /> 
      <to uri="file:{{root}}/{{dummy.int.destination.dir}}" /> 
    </route> 

キャメルのそれ以降のバージョンとのトリックがあります:ので、春はあなたの${}を削除し、キャメルに裸file.pathを渡しません$simple{file.path}の代わり${file.path}を使用しています。例えば。 URI 'から' 入力の動きは、このようなことがあります

move=archive/$simple{date:now:yyyyMMdd}/$simple{file:name} 

http://camel.apache.org/how-do-i-use-spring-property-placeholder-with-camel-xml.html

http://camel.apache.org/using-propertyplaceholder.html

関連する問題