9

Spring MVC サーバーで、ファイル (画像) と JSON メタデータの両方を含む multipart/form-data リクエストを受信したいと考えています。JSON セクションにContent-Type=application/json. Spring サービスの形式は次のとおりです。

@RequestMapping(value = MY_URL, method=RequestMethod.POST, headers="Content-Type=multipart/form-data")
public void myMethod(@RequestParam("image") MultipartFile file, @RequestParam("json") MyClass myClass) {
...
}

ファイルは正しくアップロードされていますが、JSON 部分に問題があります。次のエラーが表示されます。

org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'myPackage.MyClass'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [myPackage.MyClass]: no matching editors or conversion strategy found

マルチパート リクエストの JSON 変換を使用しない場合、Jackson 2 を使用するとうまく機能しますが、マルチパートを使用すると前のエラーが発生します。メッセージの一部として JSON をサポートするようにマルチパート メッセージ コンバーターを構成する必要があると思いますが、その方法がわかりません。これが私の構成です:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
<mvc:annotation-driven>
    <mvc:message-converters>
         <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
    </mvc:message-converters>
</mvc:annotation-driven>

MyClass ではなく myClass の型として String を使用するとすべてうまく機能しますが、Spring MVC サポートをパラメーター変換に使用したいと考えています。

4

2 に答える 2

1

これを行う方法はわかりませんが、 @RequestParam("json") MyClass myClass u を @RequestParam("json") String myClass に変更し、JSON 変換によってオブジェクト クラスを構築できることはわかっています。良くないけど効く

于 2013-08-12T09:52:53.370 に答える