Mule で Jersey モジュールを使用してファイル アップロードを実装しようとしています。
私のミュールフローは次のようになります。
<flow name="rest-service">
<inbound-endpoint address="http://localhost:9999/testupload"/>
<jersey:resources>
<component class="com.example.test.UploadFileResource"/>
</jersey:resources>
</flow>
以下のように UploadFileResource のリソース メソッドに @Consumes アノテーションを付けないと、multipart/form-data Content-type を使用して HTTP Post リクエストが行われたときにメソッドが呼び出され、HTTP 2xx ステータス コードが返されます。
@Path("/uploadfile")
public class UploadFileResource {
@POST
public Response uploadFile2(...) {
logger.info("Multipart Upload");
...
}
}
しかし、以下のように MULTIPART_FORM_DATA Media Type で @Consumes アノテーションを付けると、HTTP Post リクエストが multipart/form-data Content-type を使用して行われた場合でも、メソッドが呼び出されず、HTTP 415 Unsupported Media type が返されます。
@Path("/uploadfile")
public class UploadFileResource {
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile2(...) {
logger.info("Multipart Upload");
...
}
}
@Consumes Media タイプが HTTP Post Content-type ヘッダーと一致する場合でも、415 ステータスが発生する理由はありますか?