package com.x.bbs.assemble.control.jaxrs.image; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.container.AsyncResponse; import javax.ws.rs.container.Suspended; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.google.gson.JsonElement; import com.x.base.core.project.annotation.JaxrsDescribe; import com.x.base.core.project.annotation.JaxrsMethodDescribe; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.http.HttpMediaType; import com.x.base.core.project.jaxrs.ResponseFactory; import com.x.base.core.project.jaxrs.StandardJaxrsAction; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; import com.x.bbs.assemble.control.jaxrs.foruminfo.exception.ExceptionForumInfoProcess; @Path("image/encode") @JaxrsDescribe("图片编码服务") public class ImageBase64Action extends StandardJaxrsAction { private static Logger logger = LoggerFactory.getLogger(ImageBase64Action.class); @Path("base64") @JaxrsMethodDescribe(value = "将URL指向的图片转换成base64String.", action = ActionImageBase64.class) @POST @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void convert(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); Boolean check = true; if (check) { try { result = new ActionImageBase64().execute(request, effectivePerson, jsonElement); } catch (Exception e) { result = new ActionResult<>(); Exception exception = new ExceptionForumInfoProcess(e, "获取所有ForumInfo的信息列表时发生异常!"); result.error(exception); logger.error(e, effectivePerson, request, null); } } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } }