2012-03-26 16 views
0

ファイルをMySQLファイルコンシューマに送信するにはまだ忙しいです。特定の大きなファイルでエラーが発生し始め、別のルートに送信して処理したい。したがって、アイデアはファイルベースのルーターで、大きなファイルの場合は別のディレクトリにコピーしてそこに置いてください(これを行う方法を理解するための簡単な手順です)。Apache Camelのサイズに基づいてファイルをルーティングする方法

私はCBRと私のラクダの文脈の中で単純な表現言語を使う方法について読んで始めました。だから私はcamel-context.xmlファイルにCBRを追加しました。そして今はどんなルートも走らせることができません。右のように、明らかに、私はそこにいくつかの悪いXMLを得たが、私のライブのために、私は多分、より経験豊富なライダーのいくつかは私にいくつかを与えることができ、問題を見つけるように見えるカント

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 
Line 48 in XML document from class path resource [META-INF/spring/camel-context.xml] is invalid; 
nested exception is org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup. 

:ビルドが次のエラーで失敗します私のXMLファイルを簡単に見て、ここに助言してください。

<errorHandler id="defaultEH" type="DefaultErrorHandler"> 
     <redeliveryPolicy 
       maximumRedeliveries="5" 
       retryAttemptedLogLevel="WARN" 
       backOffMultiplier="1" 
       useExponentialBackOff="true"/> 
    </errorHandler> 
    <threadPoolProfile id="myDefaultProfile" 
     defaultProfile="true" 

     maxPoolSize="16"/> 

     <threadPool id="myPool" threadName="Cool" poolSize="4" maxPoolSize="4" maxQueueSize="100"/> 
     <route handleFault="true"> 


      <from uri="file://c:/CTest/BadFiles?noop=true&amp;recursive=true&amp;delay=3000"/> 
      <choice> 
      <when> 
       <simple>${file:length}<20000000</simple> 
       <threads executorServiceRef="myPool"> 
        <to uri="bean://fileToSQL"/> 
       </threads> 
      </when> 
      <otherwise> 

       <to uri="file://c:/CTest/outbox"/> 

       <stop/> 
      </otherwise> 
      </choice> 
      <!--<to uri="jdbc://timlogdb"/>--> 

     </route> 

私はあらゆるところを見て、私の理解によれば、これは有効なXMLでなければなりません。

答えて

1

私はあなたがテキストよりも大きい記号をエスケープする必要があると思います。これはXMLの制限です。 また、単純な言語では、演算子の周囲にスペースを使用する必要があります。だからそれはする必要があります

<simple>${file:length} &lt; 20000000</simple> 
+0

私はそれが何かばかだと思った。あまりにも多くの作業をしている今、それは氷の冷たいビールの時間だと思う。ありがとう – Namphibian

関連する問題