Estoy tratando de crear un complemento de compilación personalizado utilizando el marco SDK de Atlassian y he desarrollado una API Rest de compilación personalizada para actualizar los datos almacenados en la base de datos.
Estoy invocando el resto de la API usando una llamada AJAX desde un archivo JavaScript como se indica a continuación:
$.ajax({ headers:{ 'Content-Type':'application/json', 'Accept': 'application/json' }, url : serviceUrl + "rules/update", type: "POST", data : ruleObj })Esta llamada API invocará la siguiente API REST:
@Path("/rules") public class fieldsResource { @POST @Path("/update") @Produces({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON }) public Response update(@Context HttpServletRequest req, @Context HttpServletResponse res) { jiraAuthenticationContext = ComponentAccessor.getJiraAuthenticationContext(); appuser = jiraAuthenticationContext.getLoggedInUser(); // Fetch rule id of rule which need to be updated final int ruleId = Integer.parseInt(req.getParameter("id")); Rules rule = rule.findRuleById(ruleId); boolean ifUserHasRequiredAccess = ifUserHasRequiredAccess(req, res, projectKey, appuser, userManager, jiraAuthenticationContext, loginUriProvider); if (ifUserHasRequiredAccess) { log.warn("Update API is invoked for rule " + ruleId + " to update Action triggered by : " + appuser); return Response.noContent().build(); } return Response.status(401).build(); } }Inicialmente, sin agregar Content-Type, Aceptar en el archivo JS y sin agregar @Consumes ({ MediaType.APPLICATION_JSON }) La llamada a la API fue exitosa, pero después de agregar @Consumes ({ MediaType.APPLICATION_JSON }), obtengo 500 Error interno del servidor.
Intenté agregar 'text/plain' también, luego también arroja 500 Internal Server Error.
Necesito agregar @Consumes({ MediaType.APPLICATION_JSON }) para esta llamada a la API. ¿Alguien puede guiarme para resolver este problema?
Según su fragmento de código, no está devolviendo ningún objeto en el cuerpo de la respuesta.
return Response.noContent().build(); or return Response.status(401).build();@Consumes espera que su API devuelva una respuesta json.
¿Quieres que la API devuelva alguna respuesta?