有没有一种方法可以从属性文件值设置其余配置头?

时间:2020-01-03 12:57:30

标签: java spring apache-camel spring-camel ava

在这里,我试图从属性文件访问全局属性,并在其余配置中将其设置在enableCORS标头中,例如

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring"
    xmlns:prop="http://camel.apache.org/schema/placeholder"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans    
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://camel.apache.org/schema/spring
       http://camel.apache.org/schema/spring/camel-spring.xsd">

 <camelContext xmlns="http://camel.apache.org/schema/spring" streamCache="true" id="service-v1.0.0"> 

<propertyPlaceholder id="a-properties" location="classpath:model.properties" xmlns="http://camel.apache.org/schema/spring" />
    <restConfiguration component="servlet" bindingMode="auto" prop:enableCORS="cors-header-enabled" /> 

</camelContext>

但是当我这样做时。我收到类似

的错误

cvc-complex-type.3.2.2:不允许将属性'prop:enableCORS'用于 出现在元素“ restConfiguration”中

如何设置以及应进行哪些更改才能使其正常工作。

在我的情况下,将有许多服务xml,并且对每个属性进行更改将是乏味的。有什么解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

哼,不确定占位符是否用于所有标签(包括restConfiguration)

医生说:

The property placeholders is also supported in *many* of the Camel
Spring XML tags such as <package>, <packageScan>, <contextScan>,
<jmxAgent>, <endpoint>, <routeBuilder>, <proxy> and the others.

也许您可以尝试其他语法?

<restConfiguration ... enableCORS="{{cors-header-enabled}}" />