spring/jackson Web サービスにファイルをアップロードしようとすると、問題が発生します。私のサービスの説明は次のとおりです。
@POST
@Path("/foo/{someID}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") com.sun.jersey.core.header.FormDataContentDisposition fileDetail,
@PathParam("someID") Long supplierID)
{
}
私が得ているエラーは次のとおりです。
The request sent by the client was syntactically incorrect.
これは、機能していない Chrome から取得したヘッダーです。
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:879585
Content-Type:multipart/form-data; boundary=----WebKitFormBoundary1VA1IfWOdVmZqk49
Cookie:SPRING_SECURITY_REMEMBER_ME_COOKIE=COOKIE_HERE
Host:localhost:8081
Origin:chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Request Payload
------WebKitFormBoundary1VA1IfWOdVmZqk49
Content-Disposition: form-data; name="file"; filename="Chrysanthemum.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary1VA1IfWOdVmZqk49--
コンテンツの種類ではなく、コンテンツのサイズであることがわかりました。9377 バイトでは壊れますが、9375 バイトでは機能します。残念ながら、Tomcat、Spring、または Jersey で文書化されている制限 (デフォルトまたはその他) と一致しないようです。