0

次の構成でSpringに登録されたカスタムMessageConverterがあります。

<bean id="jsonHttpMessageConverter" class="com.eventwiz.web.util.ServiceResponseHttpMessageConverter">
    <property name="supportedMediaTypes" value="application/json"/>
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
      <util:list id="beanList">
        <ref bean="jsonHttpMessageConverter"/>
      </util:list>
    </property>
</bean>

ただし、コードにブレークポイントがあることを確認したため、呼び出されていません。ServiceResponseHttpMessageConverterは、MappingJacksonHttpMessageConverterをサブクラス化し、writeInternal()メソッドをオーバーライドします。MessageConverter.supports()をオーバーライドして、呼び出されているかどうかを確認しましたが、呼び出されていませんでした。何が起こっているのかアイデアはありますか?

4

1 に答える 1

1

著者からの回答に基づいて発見された問題は、 <mvc:annotation-driven/>独自のhandlerAdapterを登録するタグでした。そのため、このアダプターにコンバーターが追加された別のhandlerAdapterがSpring MVC構成ファイルに追加されると、カスタムアダプターは有効になりません。修正は、<mvc:message-converters...下のタグを介してhttpMessageConvertersを登録するか、カスタムハンドラアダプタを<mvc:annotation-driven削除して、その下に登録されているhttpmessageconverterを使用することです。<mvc:annotation-driven

于 2012-09-25T18:30:18.187 に答える