2

私はJaxb2Marshaller以下のように設定しようとしています:

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>com.test.response1.ResponseType1</value>
            <value>com.test.response2.ResponseType2</value>
            <value>com.test.request.Request</value>
        </list>
    </property>
</bean>

そして、それは機能します。

classesToBound混乱は、問題で言及されているクラスの順序ですか?

それを次のように変更すると:

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
                        <value>com.test.request.Request</value>
            <value>com.test.response1.ResponseType1</value>
            <value>com.test.response2.ResponseType2</value>
        </list>
    </property>
</bean>

すべてがまったく同じで、次の例外が発生します。

org.springframework.beans.TypeMismatchException: Failed to convert value of type 'com.test.response2.ResponseType2' to required type 'com.test.request.Request'

spring使用されているのバージョンは次のとおりです。3.1.2.RELEASE

誰でも助けることができますか?

4

1 に答える 1

0

Spring 3.1.0 と 3.1.2 の間で何かが変更されていない限り、JAXB で生成されたクラスを扱っている場合、順序は重要ではありません。オブジェクトを手動で作成/注釈付けしている場合、それは別の話かもしれません-投稿していただければ、私たちがお手伝いできます。別の注意として、またはプロパティJaxb2Marshallerを使用して、マーシャリングするクラスを指す別のメカニズムを使用することを強くお勧めします。/には、JAXB コンパイラによって生成されるクラスが必要であることに注意してください。contextPathspackagesToScancontextPathcontextPathsObjectFactory

于 2012-11-28T21:43:41.363 に答える