Java Camel exec从shell脚本返回始终为空的字符串

Java Camel exec从shell脚本返回始终为空的字符串,java,apache-camel,wicket,Java,Apache Camel,Wicket,我有一段代码片段,用于使用wicket执行java Tomcat web开发中的脚本shell 公共类调用脚本扩展了RouteBuilder{ 字符串结果; @凌驾 public void configure()引发异常{ 发件人(“直接:执行官”) .to(“exec:ls?args=/home/foo/”) .进程(新处理器(){ 公共作废进程(Exchange)引发异常{ ExecResult ExecResult=exchange.getIn().getBody(ExecResult.c

我有一段代码片段,用于使用wicket执行java Tomcat web开发中的脚本shell

公共类调用脚本扩展了RouteBuilder{
字符串结果;
@凌驾
public void configure()引发异常{
发件人(“直接:执行官”)
.to(“exec:ls?args=/home/foo/”)
.进程(新处理器(){
公共作废进程(Exchange)引发异常{
ExecResult ExecResult=exchange.getIn().getBody(ExecResult.class);
结果=execesult.toString();
}
});
}
公共字符串getResult(){
返回结果;
}
}
我在Wicket 7.0.0中的Onclick方法中使用它,没有生成错误消息,但exec路由始终返回空字符串

CamelContext CamelContext=newdefaultcamelcontext();
CallingScript call=新建CallingScript();
试一试{
camelContext.addRoutes(调用);
}捕获(例外e){
e、 printStackTrace();
}
试一试{
camelContext.start();
}捕获(例外e){
e、 printStackTrace();
}
试一试{
camelContext.stop();
}捕获(例外e){
e、 printStackTrace();
}
String res=call.getResult();
getSession().info(“目录内容”+res+“!”);

仅启动驼峰上下文不足以触发路由。如果要手动触发路由,可以使用方法


顺便说一句,IMHO,为每个应用程序启动一个camel上下文是最佳实践。

仅启动camel上下文不足以触发路由。如果要手动触发路由,可以使用方法

顺便说一句,IMHO,为每个应用程序启动一个camel上下文是最佳实践