Джерси. Я не могу авторизовать пользователя при загрузке файлов.

В функциях по умолчанию я могу использовать ContainerRequestContext requestCtx получить защитный текст и имя пользователя из запроса.

Но по какой-то причине при использовании этого в функции, которая потребляет MediaType.MULTIPART_FORM_DATA Я получаю эту ошибку:

org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.

Код:

@POST
@Path("{albumcode}")
@RolesAllowed("user")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadPicture(@PathParam("code") String code,
FormDataMultiPart multipart, 
ContainerRequestContext requestCtx) {

Без ContainerRequestContext requestCtx код сверху работает просто отлично.

Какой лучший способ получить данные из моего ContainerRequestContext а также возможность загружать файлы одновременно?

1 ответ

Решение

Нашел решение при чтении через случайные посты. Я узнал, что добавление @Context аннотация перед моим ContainerRequestContext requestCtx решил проблему.

Я надеюсь, что смогу помочь кому-то еще с этой проблемой, не могли найти другие ответы, близкие к этому

@POST
@Path("{albumcode}")
@RolesAllowed("user")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadPicture(@PathParam("code") String code,
FormDataMultiPart multipart, 
@Context ContainerRequestContext requestCtx) {
Другие вопросы по тегам