Quarkus @MultipartForm throws 415

Viewed 15

I am trying to upload a file using quarkus-resteasy-reactive-jackson. Following different tutorials I seem to have everything setup as needed, but when I try to upload a file I get a 415 response code.

@Path("/companies/{companyId}/induction")
@Produces(MediaType.APPLICATION_JSON)
public class InductionController {

    @Inject
    InductionService service;

    @POST
    @Path("/{inductionId}")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(
            @PathParam("inductionId") Long inductionId,
            @PathParam("companyId") Long companyId,
            @MultipartForm InductionFile uploadedFile
    ) {
        String fileLocation = "/uploads/" + companyId + "/" + StorageLocation.INDUCTION.getProperty() + "/" + inductionId;
//        InductionEntity induction = service.saveFile(uploadedFile, inductionId, fileLocation);
        return Response.ok().build();
    }
}
public class InductionFile {

    @FormParam("inductionFile")
    @PartType(MediaType.APPLICATION_OCTET_STREAM)
    public byte[] data;
}

Postman request

2022-09-18 19:13:06,502 ERROR [io.bud.exc.map.ThrowableMapper] (executor-thread-0) errorId[fa42c898-c6f8-40e4-94c5-6975337f0526]: javax.ws.rs.NotSupportedException: HTTP 415 Unsupported Media Type
    at org.jboss.resteasy.reactive.server.handlers.RequestDeserializeHandler.handle(RequestDeserializeHandler.java:59)
    at org.jboss.resteasy.reactive.server.handlers.RequestDeserializeHandler.handle(RequestDeserializeHandler.java:25)
    at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:141)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:548)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:829)

This is my setup and it looks right to me, but it obviously isn't. Can anyone shed any light on this for me?

0 Answers
Related