同僚、私はchoice
とdoTry
でキャメルルートを設定しようとしています。 私の問題はの2番目のwhen
句です。 質問:choice
節にdoTry
工事を使用できますか?Camel:選択肢のdoTry
ルートは次のようになります。
public void configure() {
from("sftp://.....").choice()
.when(header("CamelFileName").contains("XML P")).log("Validate ${file:name}").bean(new MessProcessor(), "logInputMessDetails")
.doTry().
to("validator:file:C:\\Users...\\xsds\\p.xsd").log("${file:name} is valid")
.doCatch(ValidationException.class)
.log("XML P is not valid")
.to("file:sftp-inbound\\data-invalid\\" + header("CamelFileParent").toString())
.bean(messProcessor, "stopCamel")
/*The problem is here*/ .when(header("CamelFileName").contains("XML X")).log("Validate ${file:name}").bean(new MessProcessor(), "logInputMessDetails").
doTry().to("validator:file:C:\\Users\....\xsds\\position.xsd").log("${file:name} is valid").
doCatch(ValidationException.class).log("XML X is not valid").to("file:sftp-inbound\\data-invalid\\" + header("CamelFileParent").toString()).
bean(messProcessor, "stopCamel")
.end();
}
UPDATE
ルート.bean(messProcessor, "stopCamel")
削除した後:
public void configure() {
from("sftp://.....").choice()
.when(header("CamelFileName").contains("XML P")).log("Validate ${file:name}").bean(new MessProcessor(), "logInputMessDetails")
.doTry().
to("validator:file:C:\\Users...\\xsds\\p.xsd").log("${file:name} is valid")
.doCatch(ValidationException.class)
.log("XML P is not valid")
.to("file:sftp-inbound\\data-invalid\\" + header("CamelFileParent").toString())
.end;
/*The problem is still here*/ .when(header("CamelFileName").contains("XML X")).log("Validate ${file:name}").bean(new MessProcessor(), "logInputMessDetails").
doTry().to("validator:file:C:\\Users\....\xsds\\position.xsd").log("${file:name} is valid").
doCatch(ValidationException.class).log("XML X is not valid").to("file:sftp-inbound\\data-invalid\\" + header("CamelFileParent").toString()).
bean(messProcessor, "stopCamel")
.end();
}
UPDATE つ以上の変異体
public void configure() {
from("sftp:...}")
.choice()
.when(header("CamelFileName").contains("XML_POS")).log("Validate ${file:name}")
.to("validator:file:C:\\pos.xsd").log("${file:name} valid")
.when(header("CamelFileName").contains("XML_SETS")).log("Validate ${file:name}")
.to("validator:file:C:\\sets.xsd").log("${file:name} valid").end()
.onException(Exception.class)
.process(new FailureResponseProcessor())
.handled(true);
/*to("file:sftp-inbound");*/
}
句、ありがとうございました。 – May12