使用 Camel CXF 休息端点时如何指定 JAXB 注释 类?
How to specify JAXB annotated classes when using Camel CXF rest endpoint?
我有工作的 Camel CXF 端点,在 spring 文件中定义如下:
<cxf:cxfEndpoint id="myEndpoint" address="myAddress"
serviceClass="myServiceClass"
loggingFeatureEnabled="true" skipFaultLogging="true" >
它工作正常,可以自动获取 JAXB 类 我已经用 @XmlRootElement 和 @XmlSeeAlso 进行了注释。两个项目使用相同的端点定义,我想将一些 类 移动到它们适当的子项目,因为我确实需要它们访问该子项目中的其他 类。问题是要做到这一点,我必须从顶层 类 的 @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>
但是在 Camel 中创建路线时我看不到如何应用它?
<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>
我有工作的 Camel CXF 端点,在 spring 文件中定义如下:
<cxf:cxfEndpoint id="myEndpoint" address="myAddress"
serviceClass="myServiceClass"
loggingFeatureEnabled="true" skipFaultLogging="true" >
它工作正常,可以自动获取 JAXB 类 我已经用 @XmlRootElement 和 @XmlSeeAlso 进行了注释。两个项目使用相同的端点定义,我想将一些 类 移动到它们适当的子项目,因为我确实需要它们访问该子项目中的其他 类。问题是要做到这一点,我必须从顶层 类 的 @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>
但是在 Camel 中创建路线时我看不到如何应用它?
<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>