ファイルシステムからファイルを読み込んでルートで処理する小さなキャメルプロジェクトがあります。 処理機能の中に私はsetHeaderがプロセス関数内で機能しないのはなぜですか?
exchange.getOut().setHeader("tc.GIARO.item.ids",simple("TC00000021"));
を設定し、その後.TO()関数が機能していません。 しかし、私は
.setHeader("tc.GIARO.item.ids", simple("TC00000021"))
.TOような処理機能の外にこれを設定した場合()関数は、このヘッダと作品を認識する。
私が.logの場合は()ストレート.process後の()または.setHeader()関数は、それはこれがなぜ起こるか
誰かが知っている...両方の方法でログアウトしますか?
EDIT:
@Override
public void configure() throws Exception {
from("file://" + path + "?preMove=inprogress&move=.done")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String myFilename = (String) exchange.getIn().getHeader("CamelFileNameOnly");
String[] tcid = myFilename.split("-");
String filename = (String) exchange.getIn().getHeader("CamelFilePath");
String content = new String(Files.readAllBytes(Paths.get(filename)));
exchange.getOut().setBody(content, String.class);
exchange.getOut().setHeader("tc.GIARO.item.ids", simple("TC00000021")); //whether here
}
})
.setHeader("tc.GIARO.item.ids", simple("TC00000021")) // or whether here
.log("${header.tc.GIARO.item.ids}")
.to("tc://" + ip + "/tc?tcMethod=getItemAndRelatedObjects&tcUser=" + user + "&tcPass=" + pass
+ "&tcSessionKey=1");
}
言うのは難しいを作成しないでください。私はあなたが変更したい部分であるので、getOut()からgetIn()に変更することをお勧めします。 – noMad17