在验证器 uri 组件中使用时,camel 消息交换 属性 未被解析
The camel message exchange property is not being resolved when used in validator uri component
我正在尝试使用蓝图 DSL 使用 camel 的验证器组件针对 xsd 验证 xml 文件。
<to id="validateXML" uri="validator:file:D:/data/schema/flow.xsd" /> --> working
<to id="validateXML" uri="validator:file:${property.flowXsdPath}" /> --> Not working
flowXsdPath 是一个交换 属性,它设置为由变量 xsdPathVar 定义的 xsd 位置,如下所示:
exchange.setProperty("flowXsdPath", exchange.getContext().resolvePropertyPlaceholders(xsdPathVar));
我遇到异常 "Failed to create Producer for endpoint: Endpoint[validator://file:$%7Bproperty.flowXsdPath%7D]. Reason: java.io.FileNotFoundException: ${property.flowXsdPath} (The system cannot find the file specified)"
尽管我可以在验证 xml 文件之前访问日志消息中的 属性 值,就像这样
<log message="File ${file:name} XSD Location = ${property.flowXsdPath}" />
2017-10-16 11:48:44,037 | INFO | processXMLFiles] | file-jms-hums-route | ID-ITEM-XXXXX-49898-1508134722113-0-3 | File 20150603-161237-A412-MFSC.xml XSD Location = D:/data/schema/FSC.xsd
能否请您帮助我如何访问此 属性 内部验证程序文件组件?
您应该使用 Dynamic To <toD>
而不是 <to>
将消息发送到动态计算端点。
中的相关部分
我正在尝试使用蓝图 DSL 使用 camel 的验证器组件针对 xsd 验证 xml 文件。
<to id="validateXML" uri="validator:file:D:/data/schema/flow.xsd" /> --> working
<to id="validateXML" uri="validator:file:${property.flowXsdPath}" /> --> Not working
flowXsdPath 是一个交换 属性,它设置为由变量 xsdPathVar 定义的 xsd 位置,如下所示:
exchange.setProperty("flowXsdPath", exchange.getContext().resolvePropertyPlaceholders(xsdPathVar));
我遇到异常 "Failed to create Producer for endpoint: Endpoint[validator://file:$%7Bproperty.flowXsdPath%7D]. Reason: java.io.FileNotFoundException: ${property.flowXsdPath} (The system cannot find the file specified)"
尽管我可以在验证 xml 文件之前访问日志消息中的 属性 值,就像这样
<log message="File ${file:name} XSD Location = ${property.flowXsdPath}" />
2017-10-16 11:48:44,037 | INFO | processXMLFiles] | file-jms-hums-route | ID-ITEM-XXXXX-49898-1508134722113-0-3 | File 20150603-161237-A412-MFSC.xml XSD Location = D:/data/schema/FSC.xsd
能否请您帮助我如何访问此 属性 内部验证程序文件组件?
您应该使用 Dynamic To <toD>
而不是 <to>
将消息发送到动态计算端点。