如何在使用 Camel CXF rest 端点时指定 JAXB 注释类?



我有一个工作 Camel CXF 端点,在弹簧文件中定义如下:

<cxf:cxfEndpoint id="myEndpoint" address="myAddress"
serviceClass="myServiceClass"
loggingFeatureEnabled="true" skipFaultLogging="true" >

它工作正常,可以自动拾取我用@XmlRootElement和@XmlSeeAlso注释的JAXB类。两个项目使用相同的端点定义,我想将一些类移动到其相应的子项目中,因为我确实需要它们来访问该子项目中的其他类。问题是要做到这一点,我必须将它们从顶级类的@XmlSeeAlso注释中删除。我已经尝试过这个,并且在子项目中实例化端点时创建的 JAXB 上下文不知道这些类。解决此问题的最简单方法是什么?最初,我认为很容易找到一个属性,该属性允许我指定 CXF 提供给 JAXB 上下文的一个或多个附加类,但是我看不出如何将 CXF 文档中给出的配置应用于 Camel 上下文。例如,此处的配置:

http://cxf.apache.org/docs/jax-rs-data-bindings.html

讨论如何使用"extraClass"属性:

<bean id="jaxb" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="extraClass">
<list>
<value>org.apache.cxf.jaxrs.resources.SuperBook</value>  
</list>
</property>
</bean>

但是,在骆驼中创建路线时,我看不到如何应用它?

<cxf:dataBinding>
<bean id="extraJaxBClasses" class="org.apache.cxf.jaxb.JAXBDataBinding">
<property name="extraClass">
<list>
<value>your class here</value>
<value>your class here</value>
</list>
</property>
</bean>
</cxf:dataBinding>

最新更新