2017-06-19 10 views
0

我是Apache駱駝的新手。有誰知道如何使用駱駝來處理文本文件的內容,以檢查文本文件中是否存在特定的字符串,例如「錯誤」。我似乎不能通過Java下面的第一行。任何幫助將不勝感激如何在文本文件中搜索字符串使用Apache Camel

from("file://inputdir/").convertBodyTo(String.class). 

回答

1

使用bodyAscontains。例如:

from("file://inputdir/") 
    .choice() 
     .when(bodyAs(String.class).contains("error")) 
      .to(/* a route for errors */) 
     .otherwise() 
      .to(/* a route for non-errors */); 
+0

我嘗試使用bodyAs但日食是突出一個錯誤。 '方法bodyAs(類別)未定義類型'。我猜測它已被棄用。 – Beanieman

+0

你使用的是什麼版本的駱駝? ['bodyAs'](http://static.javadoc.io/org.apache.camel/camel-core/2.19.1/org/apache/camel/builder/BuilderSupport.html#bodyAs-java.lang.Class- )在2.19.1中可用。 – chunjef

+0

就像你說的那樣,該方法在2.19.1中找到。我使用2.15。然後我改爲2.19.1,因爲我非常想解決這個問題,但是由於不兼容,我的Wildfly 8.2.0無法運行駱駝環境。然後我不得不將Wildfly升級到10.1。但我的應用程序不會一起運行。是否有另一種方式沒有使用掌上電腦還是你可以建議一個更簡單的應用服務器爲駱駝電源,因爲我是新技術 – Beanieman

0

您可以使用$ {bodyAs(字符串)}如下:

<route id="_route1"> 
<from id="_from1" uri="file:work/cbr/input"/> 
<when id="_when1"> 
<simple>${bodyAs(String)} contains 'ABC'</simple> 
<log id="_log1" message="contains string ABC"/> 
<to id="_to1" uri="file:work/cbr/output"/> 
</when> 
</route>