При попытке десериализации JSON в объект я ловлю исключение SAXParsingException, которое выглядит следующим образом. Запись из памяти, поэтому она может быть не на 100% правильной, но идея та же.
try {
validator.validate(source);
return Response.ok(jsonResponse).build();
}
catch (SAXParseException format) {
String exceptionStr = format.getMessage();
exceptionStr = mapper.writeValueAsString(exceptionStr);
return Response.status(Response.Status.BAD_REQUEST).entity(exceptionStr).build();
}
Однако getMessage () возвращает ноль. Однако, если я просто верну
return Response.status(Response.Status.BAD_REQUEST).entity(format).build();
, то он возвращает трассировку стека, которая выглядит следующим образом (я вырезал большую часть трассировки стека, поскольку она очень длинная)
{
"cause": {
"cause": {
"stackTrace": [
{
"methodName": "run",
"fileName": "Thread.java",
"lineNumber": 745,
"className": "java.lang.Thread",
"nativeMethod": false
}
],
"lineNumber": 0,
"columnNumber": 0,
"message": "cvc-complex-type.2.4.b: The content of element 'Request' is not complete. One of '{\"blahblahblah":echoData, \"blahblahblah":schemeCode}' is expected.",
"localizedMessage": "cvc-complex-type.2.4.b: The content of element 'Request' is not complete. One of '{blahablah":echoData, \"blahbblahblah":schemeCode}' is expected."
},
Так почему getMessage () возвращает ноль, если к исключению прикреплено сообщение?