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

时间:2017-06-19 17:18:59

标签: jaxb apache-camel jax-rs cxf

我有一个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

谈论使用&#34; extraClass&#34;属性:

<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>

但是我在Camel中创建路径时看不到如何应用它?

1 个答案:

答案 0 :(得分:0)

 <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>