我正在使用Spring 3.1。x和CXF 2.6.1用于REST服务。使用jaxbXmlProvider,如下所示。
<jaxrs:server ...
<jaxrs:providers>
<ref bean="jaxbXmlProvider" />
</jaxrs:providers>
...
</jaxrs:server>
<bean id="jaxbXmlProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="jaxbElementClassNames" ref="elements" />
</bean>
<util:list id="elements">
<value>com.model.City</value>
<value>com.model.Cities</value>
</util:list>
我想使用jaxb2-marshaller扫描包(com.model)中的所有pojo。
您可以调用提供类列表的另一个bean的方法,如:
<property name="jaxbElementClassNames" value="#{ myBean.classNamesFromPackage}"/>
配置myBean,将包名作为属性并具有getclassnamesfrommppackage方法:
<bean id="myBean" class="x.y.z.MyBean">
<property name="packageName" value="com.model" />
</bean>
在MyBean的getclassnamesfromppackage方法中,您可以使用如何从类路径中的Java包中读取所有类中建议的代码。