Jersey 我在上传文件时无法授权用户
Jersey I can't authorize the user when uploading files
在默认函数中,我可以使用 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
获取数据并同时上传文件的最佳方式是什么?
在阅读随机帖子时找到了解决方案。我发现在我的 ContainerRequestContext requestCtx
前面添加 @Context
注释解决了这个问题。
我希望我能帮助其他人解决这个问题找不到任何其他接近这个的答案。
@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) {
在默认函数中,我可以使用 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
获取数据并同时上传文件的最佳方式是什么?
在阅读随机帖子时找到了解决方案。我发现在我的 ContainerRequestContext requestCtx
前面添加 @Context
注释解决了这个问题。
我希望我能帮助其他人解决这个问题找不到任何其他接近这个的答案。
@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) {