2017-06-19 11 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>