尝试在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.index - 链接异常: [javax.xml.bind.JAXBException:&#34; xxxx&#34;不包含ObjectFactory.class或jaxb.index]
我不确定为什么这需要ObjectFactory.class。
请帮我解决这个问题,或者有没有其他方法可以在spring.xml中读取java常量文件
请建议。
感谢。
答案 0 :(得分:1)
这是从类中读取Java常量direclty的另一种方法。 您可以使用驼峰简单语言。
<route>
<from uri=""/>
<setProperty propertyname="test">
<simple>${type:<packageName>.<constantclassname>.<constantName>}</simple>
</setProperty>
<log message="print ${property[test]"/>
</route>