Java 如何从路由设置Pojo属性?
我有一条路线:Java 如何从路由设置Pojo属性?,java,apache-camel,pojo,Java,Apache Camel,Pojo,我有一条路线: from("direct:test") .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { RestResult result = new RestResult(); exchange.getOut().setBody(result); }}) ..
from("direct:test")
.process(new Processor() {
@Override public void process(Exchange exchange) throws Exception {
RestResult result = new RestResult();
exchange.getOut().setBody(result);
}})
....
.setBody(simple("${body.setStatusText('Some Status Text.')}"))
.transform().body();
我用RestResult类设置消息体。
之后,我做了一些事情,并希望更改Pojo中的一个属性StatusText。但如果我像上面那样做,我会得到一个空体。因为return=null,所以覆盖整个正文。但我只想将类的属性更改为交换的主体
public class RestResult {
private String StatusText = "OK";
public String getStatusText() { return StatusText;}
public void setStatusText(String statusText) { StatusText = statusText;}
}
有人有主意吗?你怎么能用另一个处理器呢
simple(${body.setStatusText('Some Status Text.')}“
返回null。因此,body为null。您可以通过setStatusText方法返回此
来解决此问题,但这不是gud的主意。请检查此项,除非您必须特别使用Camel,请使用处理器,如下所示。Java.process(exchange->{RestResult result=exchange.getIn().getBody(RestResult.class);if(result!=null){result.setStatusText(“某些状态文本”);}exchange.getIn().setBody(result);})
我认为读路由更好,当我只更改一个属性时,我会编写一个处理器。