2

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 ステータスが発生する理由はありますか?

4

1 に答える 1