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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache-camel - 在spring xml中读取java常量相关的知识,希望对你有一定的参考价值。

试图在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";

我正在运行这个

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

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

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

请建议。

谢谢。

答案

这是直接从类中读取Java常量的另一种方法。你可以使用骆驼简单的语言。

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

以上是关于apache-camel - 在spring xml中读取java常量的主要内容,如果未能解决你的问题,请参考以下文章

ServiceMix 中 Apache-Camel 路由的管理和监控

apache-camel调度程序组件交换属性TIMER_NAME为空

如何延迟spring bean启动?

pom.xm

使用 Guice 和 Undertow 在 Camel 中使用 rest Servlet

求助SSH整合的配置过程