整数 属性 的验证错误(骆驼)
Validation error with integer property (camel)
我在 Blueprint Camel (v 2.13.2) 中使用 OSGi 配置属性,一切都很好,直到我尝试属性一个整数 属性:标记中的 timePeriodMillis。
此代码运行良好:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
<cm:property-placeholder persistent-id="myprops"/>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="rt" trace="false" autoStartup="false">
<from uri="amq://{{myQueue}}"/>
<throttle timePeriodMillis="5">
<constant>{{maxRPP}}</constant>
<to uri="direct:mock" />
</throttle>
</route>
</camelContext>
</blueprint>
当我设置 timePeriodMillis 时:
<throttle timePeriodMillis="{{timePM}}">
我有两个验证错误:
cvc-attribute.3: The value '{{timePM}}' of attribute 'timePeriodMillis' on element 'throttle' is not valid with respect to its type, 'long'.
cvc-datatype-valid.1.2.1: '{{timePM}}' is not a valid value for 'integer'.
当我将其更改为(无引号)时:
<throttle timePeriodMillis={{timePM}}>
我再次遇到验证错误:
Open quote is expected for attribute "timePeriodMillis" associated with an element type "throttle".
有什么想法吗?谢谢
有关使用 属性 占位符的信息,请参阅 Camel 文档。在 [1] 的 XML DSL 中,对任何类型的属性使用 属性 占位符部分解释了如何对任何类型的属性使用占位符。这允许将字符串类型 {{foo}}
用于否则需要数字的类型。
[1] - http://camel.apache.org/using-propertyplaceholder.html
我在 Blueprint Camel (v 2.13.2) 中使用 OSGi 配置属性,一切都很好,直到我尝试属性一个整数 属性:标记中的 timePeriodMillis。
此代码运行良好:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
<cm:property-placeholder persistent-id="myprops"/>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="rt" trace="false" autoStartup="false">
<from uri="amq://{{myQueue}}"/>
<throttle timePeriodMillis="5">
<constant>{{maxRPP}}</constant>
<to uri="direct:mock" />
</throttle>
</route>
</camelContext>
</blueprint>
当我设置 timePeriodMillis 时:
<throttle timePeriodMillis="{{timePM}}">
我有两个验证错误:
cvc-attribute.3: The value '{{timePM}}' of attribute 'timePeriodMillis' on element 'throttle' is not valid with respect to its type, 'long'.
cvc-datatype-valid.1.2.1: '{{timePM}}' is not a valid value for 'integer'.
当我将其更改为(无引号)时:
<throttle timePeriodMillis={{timePM}}>
我再次遇到验证错误:
Open quote is expected for attribute "timePeriodMillis" associated with an element type "throttle".
有什么想法吗?谢谢
有关使用 属性 占位符的信息,请参阅 Camel 文档。在 [1] 的 XML DSL 中,对任何类型的属性使用 属性 占位符部分解释了如何对任何类型的属性使用占位符。这允许将字符串类型 {{foo}}
用于否则需要数字的类型。
[1] - http://camel.apache.org/using-propertyplaceholder.html