2017-10-16 67 views
1

我想通过使用蓝图DSL的骆驼验证器组件验证xsd对xsd的验证。骆驼消息交换属性在验证器uri组件中使用时未被解析

<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) );

我得到异常“无法为端点创建生产者:端点[验证器://文件:$%7Bproperty.flowXsdPath%7D]。原因:java.io.FileNotFoundException:$ {property.flowXsdPath}(系统无法找到指定的文件)”

虽然我可以只验证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 

你能帮我怎么能访问验证文件中该属性零件?

回答

3

您应该使用动态到<toD>而不是<to>发送消息到动态计算端点。

http://camel.apache.org/message-endpoint.html

+1

相关章节呀看到这个常见问题:http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html –

+0

谢谢。是的,它的工作。 –