1

REST サービスに Spring 3.1.x と CXF 2.6.1 を使用しています。以下に示すように、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>

パッケージ (com.model) 内のすべての POJOS をスキャンするために jaxb2-marshaller を使用したいと考えています。使用上のヘルプをいただければ幸いです。

4

1 に答える 1

2

次のようなクラスのリストを提供する別の Bean のメソッドを呼び出すことができます。

<property name="jaxbElementClassNames" value="#{ myBean.classNamesFromPackage}"/>

プロパティとしてパッケージ名を受け取り、getClassNamesFromPackage メソッドを持つ myBean を構成します。

<bean id="myBean" class="x.y.z.MyBean">
<property name="packageName" value="com.model" />
</bean>

MyBean の getClassNamesFromPackage メソッドでは、「クラスパスの Java パッケージからすべてのクラスを読み取るにはどうすればよいですか?」で提案されているコードを使用できます。.

于 2013-04-12T17:47:14.840 に答える