apache-camel - 在spring xml中读取java常量

时间:2017-12-20 13:37:10

标签: apache-camel

尝试在spring xml文件中读取java常量。

在spring.xml文件中

<util:constant id="speed"
    static-field="<packageName>.<constantclassname>.<constantName>" />

并使用属性占位符来读取它

 <bean id="bridgePropertyPlaceHolder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
      <property name="properties">
         <props>
           <prop key="testProperty">#{speed}</prop>
         </props>
      </property>
      <property name="ignoreUnresolvablePlaceholders" value="true"/>
   </bean>

并在路线中打印属性

<route>
<from uri=""/>
<setProperty propertyname="test">
<simple>{{testProperty}}</simple>
</setProperty>
<log message="print ${property[test]"/>
</route>

并且在Constants java类文件中定义了常量,如

public static final String <constantName> ="xxxx";

在运行时,我正在

线程中的异常&#34; main&#34; org.apache.camel.RuntimeCamelException:javax.xml.bind.JAXBException:无法实例化Provider com.sun.xml.bind.v2.ContextFactory:javax.xml.bind.JAXBException:&#34; xxxx&#34;不包含ObjectFactory.class或jaxb.in​​dex   - 链接异常: [javax.xml.bind.JAXBException:&#34; xxxx&#34;不包含ObjectFactory.class或jaxb.in​​dex]

我不确定为什么这需要ObjectFactory.class。

请帮我解决这个问题,或者有没有其他方法可以在spring.xml中读取java常量文件

请建议。

感谢。

1 个答案:

答案 0 :(得分:1)

这是从类中读取Java常量direclty的另一种方法。 您可以使用驼峰简单语言

<route>
<from uri=""/>
<setProperty propertyname="test">
    <simple>${type:<packageName>.<constantclassname>.<constantName>}</simple>
</setProperty>
<log message="print ${property[test]"/>
</route>