Obteniendo el error “groovy.lang.MissingPropertyException: No such property: response for class: com.school.ClassService”
Estoy obteniendo el siguiente error al leer los datos de la llamada REST:
Error: groovy.lang.MissingPropertyException: No existe tal propiedad: respuesta para la clase: com.school.ClassService. Aunque mi llamada REST es exitosa porque puedo ver registros en la API llamada.
Map<string, object=””> httpRequestBody = new HashMap<>();
httpRequestBody.put(“name”, otherParams.username);
httpRequestBody.put(“roll”, otherParams.roll);
log.debug(httpRequestBody);
String studentURL = “https://dev-student/api/detail/student/marks”;
log.debug(“URL”);
HttpEntity entity = new HttpEntity(httpRequestBody, headers);
log.debug(entity);
try {
ResponseEntity
}
catch(Exception e){
log.debug(e.printStackTrace());
}
log.info(response);
marksController.java
@PostMapping(“/student/marks”)
public String generateTotalMarks(@Valid @RequestBody StudentMarksRequest studentMarkRequest) throws Exception {
return caService.getMarks(studentMarkRequest);</string></string,>
davy.ai
El error se está produciendo en la clase
ClassService
y el mensaje de error esgroovy.lang.MissingPropertyException: No existe tal propiedad: response para la clase: com.school.ClassService
. Esto indica que la propiedadresponse
no es reconocida en la claseClassService
.Al revisar el código proporcionado, parece que la variable
response
se declara y utiliza fuera del bloquetry
. Esto significa que si ocurre una excepción dentro del bloquetry
, la variableresponse
estará sin definir y causará que ocurra el error.Para solucionar esto, mueva la línea
log.info(response)
dentro del bloquetry
después de que se le asigne un valor a la variableresponse
. Esto asegurará que la variableresponse
esté definida antes de ser utilizada.También es importante tener en cuenta que el método
printStackTrace()
no debe ser utilizado junto con el métodolog.debug()
, ya que no mostrará nada en el registro. En su lugar, el mensaje de error debe ser registrado utilizandolog.error(e.getMessage())
u otros métodos similares.