2015-12-29 64 views
0

我想使用骆驼的执行组件执行操作系统命令。不幸的是我没有看到命令执行的任何输出。这里是我的代码,其中包含从文件将一个简单的EXEC:无法执行骆驼的操作系统命令

public class CamelExampleTest extends CamelTestSupport { 

    @Override 
    protected RouteBuilder createRouteBuilder() throws Exception { 
     return new RouteBuilder() { 

      @Override 
      public void configure() throws Exception { 
       from("direct:startpoint").id("route1") // 
         .to("exec:wc?args=--words /usr/share/dict/words")// 
         .convertBodyTo(String.class) // 
         .process(new Processor() { 

        @Override 
        public void process(Exchange exchng) throws Exception { 
         String body = exchng.getIn().getBody(String.class); 
         System.out.println(body); 


        } 
       }).to("mock:endpoint"); 
      } 
     }; 
    } 

    @Test 
    public void test() throws InterruptedException { 
     System.out.println("running test"); 
     MockEndpoint resultEndpoint = context.getEndpoint("mock:endpoint", MockEndpoint.class); 

    } 
} 

在我的代码任何明显的错误呢?

回答

1

您不发送任何信息给direct:startpoint

尝试这样:

@Test 
public void test() throws InterruptedException { 
    System.out.println("running test"); 
    MockEndpoint resultEndpoint = context.getEndpoint("mock:endpoint", MockEndpoint.class); 
    context.createProducerTemplate().sendBody("direct:startpoint","Hello world"); 
} 
+0

非常感谢! – user2824073