1

最近、Spring で使用している XStream の問題に直面しています。XMLのマーシャリングとアンマーシャリングにXStreamを使用しているRESTアプリケーションがあります。以下に示すように構成しました。

<bean id="xStreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
     <property name="annotatedClasses">
     <list><value>com.bestbuy.commerce.repobjects.OfflineOrderRepresentation</value></list>
     </property>
  <property name="autodetectAnnotations" value="true" /> 
</bean>

そして、この XStreamMarshaller は、示されているように HttpMessageconverter に構成されています。

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
    <util:list>
            <bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
                  <property name="marshaller" ref="xStreamMarshaller" />
                  <property name="unmarshaller" ref="xStreamMarshaller" />
                 </bean>
    </util:list>
     </property>
</bean>

ここでの問題は、適切な XML を投稿すると、対応する XStream 注釈付きクラス「OfflineOrderRepresentation」に一致するはずですが、それはランダムに発生し、構文的に正しくないメッセージが表示される場合があり、サーバーを再起動すると問題がランダムに修正されます。

以下は、私が取得しているエラーログです。

[org.springframework.http.converter.xml.MarshallingHttpMessageConverter@712625b0]
   [org.springframework.web.bind.annotation.support.HandlerMethodInvoker] 
       Reading [com.bestbuy.commerce.repobjects.OfflineOrderRepresentation] 
             [org.springframework.http.converter.xml.MarshallingHttpMessageConverter@712625b0]
                [org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver] 
                          [com.bestbuy.commerce.controllers.OrderController@799a92d1]: 
                              org.springframework.http.converter.HttpMessageNotReadableException: Could not read [class com.bestbuy.commerce.repobjects.OfflineOrderRepresentation]; 
4

0 に答える 0